加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

利用存储过程动态创建表及基于该表的触发器

发布时间:2020-12-12 15:45:23 所属栏目:百科 来源:网络整理
导读:--利用存储过程动态创建表及基于该表的触发器 --1、授权 grantcreateanysequenceto scott ; grantselectanysequenceto grantcreateanytriggerto ; --2、存储过程 createorreplaceproceduretest_trigger as v_namevarchar2(100); v_Sqlvarchar2(1000); begin

--利用存储过程动态创建表及基于该表的触发器

--1、授权

grantcreateanysequencetoscott;

grantselectanysequencetograntcreateanytriggerto;


--2、存储过程

createorreplaceproceduretest_trigger
as
v_namevarchar2(100);
v_Sqlvarchar2(1000);
begin
selectto_char(sysdate,'yyyymmdd')intov_namefromdual;
v_Sql:='createtablett'||v_name||'(idnumber(16),nnvarchar2(100))';
executeimmediatev_sql;
v_Sql:='createsequenceseq_'||v_name||'startwith1';
v_sql:='createorreplacetriggertrig_'||v_name||'beforeinsertontt'||v_name||'foreachrowbeginselectseq_'||v_name||'.nextvalinto:new.idfromdual;end;';
/*exception
whenothersthen
null;*/
end;


--注意,要是存储过程执行没有问题,但有没有达到预想的结果,可以先把EXCEPTION代码端注释掉,让错误信息抛出来看看到底是什么错误

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读