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

前端之家收集整理的这篇文章主要介绍了利用存储过程动态创建表及基于该表的触发器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

--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代码端注释掉,让错误信息抛出来看看到底是什么错误

原文链接:https://www.f2er.com/oracle/211870.html

猜你在找的Oracle相关文章