当前位置:  数据库>oracle

生成动态前缀且自增号码的Oracle函数

    来源: 互联网  发布时间:2017-06-02

    本文导语: 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_TR...

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语句块中。


    
 
 

您可能感兴趣的文章:

  • 使用log4j生成的.log文件,前缀中是不是必须含有当日日期?
  • oracle生成动态前缀且自增号码的函数分享
  • linux c下利用srand和rand函数生成随机字符串
  • 关于Linux下生成运行日志 的C函数
  • Linux下c基于openssl生成MD5的函数
  • 哈希函数生成器 gperf
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • php动态生成函数示例
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • php动态生成函数的例子
  • 生成.a文件时,如何控制接口函数?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • PHP生成自定义长度随机字符串的函数分享
  • Window可以生成可执行文件的map(函数的入口地址表),Linux怎么做到这一点?详情请进!
  • C#生成MD5的函数代码
  • PHP实现生成透明背景的PNG缩略图函数分享
  • php生成随机密码自定义函数代码(简单快速)
  • gcc或g++在编译时能否生成类似vc里面的map文件?从而可以从崩溃地址知道是有哪个函数里面
  • gcc编译生成的 libmynet.so库中的函数没法调用,不知道为什么,好心人帮帮忙啊!!
  • php生成(导出)csv文件的函数示例
  • php递归实现无限分类生成下拉列表函数代码
  • 如何在单独的函数的生成按钮的事件中得到上层JDialog的指针从而关闭它!
  • ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Python的身份证号码自动生成程序
  • c#如何生成Excel(.xls和.xlsx)文件
  • 用JBuilder能将java程序生成exe可执行文件吗?如何生成?
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • ORACLE中DBMS_RANDOM随机数生成包
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • 如何指定用javac编译生成类的存放路径。(最好不要告诉我再生成之后再把文件流重新到出这种)
  • QT Designer生成的代码不能生成可执行程序
  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • 操作系统 iis7站长之家
  • 请问我用程序如何编辑Adobe Acrobat 5.0的pdf文件(生成报表)啊?或者如何才能将已生成的execl报表转换成pdf格式?
  • 请问用POI生成Excel文件时,怎么能生成边框线条等?
  • php生成短网址 仿微博短网址生成代码
  • 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
  • java随机生成字符串(字符随机生成类 生成随机字符组合)
  • 我在SRC目录下写好的源程序,我怎样能写个脚本把写好的源程序放在BIN下呢?另外我想把该程序的输出结果(生成了几个文件),生成到out目录下,
  • php生成订单号的类 php订单号生成代码
  • php实现在线生成条形码示例分享(条形码生成器)
  • 动态xml生成可行性?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,