首页 > 代码库 > 用存储过程 给表增加序列与触发器
用存储过程 给表增加序列与触发器
存储过程如下:
create or replace procedure p_createseq(tablename in varchar2,key in varchar2) Authid Current_User --使用角色权限,否则无法创建序列或表 is strsql varchar2(500); t_key varchar2(500); begin --创建序列 strsql:=‘create sequence seq_‘||tablename|| ‘ minvalue 1000 maxvalue 99999999 start with 1 increment by 1 nocache‘; execute immediate strsql; --设置触发器默认主键名 if(key is NULL) then t_key := ‘ID‘ ; else t_key := key; end if; --创建触发器 strsql := ‘CREATE OR REPLACE TRIGGER TRG_‘||tablename||‘ BEFORE INSERT ON ‘||tablename ||‘ FOR EACH ROW BEGIN SELECT SEQ_‘||tablename||‘.NEXTVAL INTO :NEW.‘||t_key||‘ FROM DUAL; END; ‘; execute immediate strsql; end p_createseq;
Authid Current_User 指明使用当前角色权限,否则无法创建表或者序列。默认存储过程无法使用当前角色权限。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。