
下列存储过程可参考
创建或替换
程序pro_getbillno(typetable在VARCHAR2,cur_mycursor出sys_refcursor)
作为
dreceiptcode VARCHAR2(40);
dreceiptname VARCHAR2(50);
dprefix1 VARCHAR2(50);
双VARCHAR2(50);
disautocreate VARCHAR2(20);
dprefix2 VARCHAR2(20);
dprefix3 VARCHAR2(20);
ddatevalue日期;
DNO数;
dlength数;
dresettype数;
dseparator VARCHAR2(20);
dreturnvalue VARCHAR2(50);
如何VARCHAR2(1000);
开始
dreturnvalue:=;
选择receiptcode
DReceiptCode,dreceiptname,dprefix1,疾病,disautocreate,dprefix2,dprefix3,ddatevalue,DNO,dlength,DResetType,DSeparator
sysreceiptconfig ,receiptcode= typetable;
如果to_number(dresettype)> 0
然后
如果disautocreate = 1
如果dresettype = 1然后根据年
如果to_number(to_char(SYSDATE,'yyyy '))< > to_number(to_char(ddatevalue,'yyyy '))然后
更新sysreceiptconfig 不= 1,datevalue= to_date(SYSDATE)在receiptcode= typetable;
其他的
更新sysreceiptconfig 没有=没有+ 1receiptcode= typetable;
如果一年的结束;
最后,如果dresettype = 1;
如果dresettype = 2 -个月
如果to_number(to_char(SYSDATE,'mm '))< > to_number(to_char(ddatevalue,'mm '))然后
更新sysreceiptconfig 不= 1,datevalue= to_date(SYSDATE)在receiptcode= typetable;
其他的
更新sysreceiptconfig 没有=没有+ 1receiptcode= typetable;
月底
最后,如果dresettype = 2;
如果dresettype = 3然后--白天
如果to_number(to_char(SYSDATE,'dd '))< > to_number(to_char(ddatevalue,'dd '))然后
更新sysreceiptconfig 不= 1,datevalue= to_date(SYSDATE)在receiptcode= typetable;
其他的
更新sysreceiptconfig 没有=没有+ 1receiptcode= typetable;
月底
最后,如果dresettype = 3;
其他的
更新sysreceiptconfig 没有=没有+ 1receiptcode= typetable;
如果;-- DResetType
最后如果;
StrSql:= 'select *sysreceiptconfig 1=1;
StrSql:=如何| |receiptcode=| | typetable | | ';
对于如何打开cur_mycursor;
结束;
以上是Oracle生成文档编号存储过程的示例代码,这是萧边介绍的。希望能对你有所帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。