oracle生成动态前缀且自增号码的函数分享

 更新时间:2014年04月23日 15:36:42   作者:  
这篇文章主要介绍了oracle生成动态前缀且自增号码的函数,需要的朋友可以参考下

复制代码 代码如下:

create or replace

Function GetInvitationNO(prev varchar2, num1 varchar2, num2 varchar2, sessionSetting varchar2)

Return Varchar2

Authid Current_User Is PRAGMA AUTONOMOUS_TRANSACTION;-- 需要使用“Current_User”的权限防止无法运行“Execute Immediate”命令 & “PRAGMA AUTONOMOUS_TRANSACTION”自制事务防止DML无法DDL的问题

Totalprev Varchar2(50);

Hassequences Number;

ReNO varchar2(50);

Begin

-- 号码的前缀

Totalprev := Prev || Num1 || Num2 || Sessionsetting;

-- 创建序列

Select Count(*) Into Hassequences From User_Sequences Where Sequence_Name=Totalprev;

If Hassequences <> 1 Then

Execute Immediate 'Create Sequence '||Totalprev||' Increment By 1 Start With 1 maxvalue 9999999 Nocycle';

End If;

-- 通过动态的序列名取序列值,把获取的序列值转换为7位长度的字符串,长度不足用“0”填充 

Execute Immediate 'Select '''|| Totalprev ||''' || to_char('||Totalprev||'.Nextval,''FM0000000'') From Dual' into ReNO;

-- to_char()中FM后跟的0代表了数字的位数,不足的用“0”填充;加上“FM”可以避免空格的出现,前面的空格是为符号位保留的,如果是对负数使用to_char,则空格部分是用来显示-的,因为是正数,所以不显示+,而是以空格代替

Return ReNO;

end;

测试

复制代码 代码如下:

Select GetInvitationNO('p', '1', '01', '114') From dual
-- Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中

相关文章

  • oracle 数据库闪回相关语句介绍

    oracle 数据库闪回相关语句介绍

    本文将详细介绍oracle 数据库闪回相关语句,需要了解跟多的朋友可以参考下
    2012-11-11
  • Oracle 11g数据库安装与卸载的方法图解

    Oracle 11g数据库安装与卸载的方法图解

    如果小编使用的是win7系统,最好采用11g,否则很可能10g出现不兼容安装不成功的情况。下面给大家分享Oracle 11g数据库安装与卸载的方法图解,非常不错,感兴趣的朋友一起看看吧
    2016-09-09
  • Oracle数据库常用语句总结大全

    Oracle数据库常用语句总结大全

    SQL是结构化查询语言,用于管理关系型数据库系统,本指南涵盖了创建和删除数据库、表以及其他高级表操作如增加、修改、删除字段,还介绍了主键、索引、视图操作和数据DML操作,需要的朋友可以参考下
    2024-09-09
  • oracle if else语句使用介绍

    oracle if else语句使用介绍

    Oracle if else 语句的写法及应用介绍,详细可参考本文
    2012-11-11
  • 删除EM,强制结束EM进程后,启动数据库ORA-00119,ORA-00132报错的解决方法

    删除EM,强制结束EM进程后,启动数据库ORA-00119,ORA-00132报错的解决方法

    通过emca -deconfig dbcontrol db -repos drop命令删除EM资料库时,很长时间没有删除完成,期间数据库连接数暴涨,达到数据库最大连接数,结果前台及后台均连接不上数据库。强制杀死EM及应用相关进程,关闭数据库后,重启数据库时报:ORA-00119,ORA-00132错误
    2015-12-12
  • Oracle的控制文件管理

    Oracle的控制文件管理

    Oracle 的控制文件记录了当前数据库的结构信息,包含数据文件及日志文件的信息以及相关的状态、归档信息等,本文主要介绍了Oracle的控制文件管理,感兴趣的可以了解一下
    2023-12-12
  • oracle的rownum深入解析

    oracle的rownum深入解析

    本文将详细介绍oracle的rownum的使用细节,需要的朋友可以参考下
    2012-11-11
  • Oracle 数据库针对表主键列并发导致行级锁简单演示

    Oracle 数据库针对表主键列并发导致行级锁简单演示

    本文简单演示针对表主键并发导致的行级锁,锁的产生是因为并发。没有并发,就没有锁。并发的产生是因为系统需要,系统需要是因为用户需要,感兴趣的你可以参考下哈,希望可以帮助到你
    2013-03-03
  • ORACLE常见错误代码的分析与解决(二)

    ORACLE常见错误代码的分析与解决(二)

    ORACLE常见错误代码的分析与解决(二)...
    2007-03-03
  • Oracle中的instr()函数应用及使用详解

    Oracle中的instr()函数应用及使用详解

    这篇文章主要介绍了Oracle中的instr()函数应用及使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论