• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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数据库里创建自增ID字段的步骤
    • Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
    • oracle中的ID号实现自增长的方法
    • 简单三步轻松实现ORACLE字段自增
    • ORACLE实现字段自增示例说明
    • Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍
    • Oracle创建主键自增表(sql语句实现)及触发器应用
    • Oracle 实现类似SQL Server中自增字段的一个办法
    • Oracle 自增(auto increment) 或 标识字段的建立方法
    • Oracle数据库中创建自增主键的实例教程
    上一篇:oracle用户权限管理使用详解
    下一篇:45个非常有用的 Oracle 查询语句小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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