Oracle 序列自增且返回主键值

CREATE SEQUENCE “seqTest1” --创建序列名称
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续。

 使用SQL创建完序列后,再次创建存储过程。

create or replace procedure PRO_GetID( 
strInsertSQL varchar2, -----插入语句参数
seqName varchar2,      ------序列名
ID out varchar2        ------返回的ID值
) 
is 
strSql varchar(200); 
begin 
execute immediate strInsertSQL;--执行插入语句 
strSql:='select '||seqName||'.currval from dual';--获取id的sql语句 
execute immediate strSql into ID;--执行获取id的sql语句 
EXCEPTION 
WHEN OTHERS THEN 
DBMS_output.PUT_LINE(SQLERRM); 
end PRO_GetID; 
原文地址:https://www.cnblogs.com/happyxiaoyao/p/3468202.html