Oracle创建序列存储过程

create or replace procedure createSequence(tableName in varchar2) is
		               indexStart number ;
		               cou number ;
                   tName varchar2(200);
                   str varchar2(8000);
		        begin
		                    tName:= tableName;
		                    str:= 'select count(*) as int from tab where tname=upper('''|| tName||''')' ;
                        dbms_output.put_line(str);
		                   execute immediate str into cou ;
		                   if cou>0 then
		                           begin
		                           str:= 'select nvl(max(id),0)+1 from ' || tableName ;
		                           execute immediate str into indexStart ;
		                           str:='create sequence SEQUENCE_' || tName || ' minvalue 1 maxvalue 999999999999999999999999999 start with '|| indexStart ||' increment by 1 nocache';
		                           dbms_output.put_line(str);
                               execute immediate str;
		                           end;
		                    end if ;
end createSequence;

测试语句:

SELECT SEQUENCE_TABLENAME.NEXTVAL FROM DUAL;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值