我在用oracle内置包DBMS_UTILITY中的EXEC_DDL_STATEMENT过程执行DDL语句创建触发器的时候碰到编译出错的问题,求解~~SQL> begin
2 dbms_output.put_line('插入前');
3 dbms_utility.exec_ddl_statement('
4 create or replace trigger trig1
5 after insert or delete or update of sage on student
6 begin
7 dbms_output.put_line("正在执行trig1触发器...");
8 delete from stu_summary;
9 insert into stu_summary (sid,age_sum,stu_count)
10 select sid,sum(sage),count(*) from student group by sid;
11 end;
12 ');
13 end;
14 /
插入前
ERROR:
ORA-24344: 成功, 但出现编译错误
ORA-06512: 在 "SYS.DBMS_UTILITY", line 574
ORA-06512: 在 line 3警告: PL/SQL 编译错误。
2 dbms_output.put_line('插入前');
3 dbms_utility.exec_ddl_statement('
4 create or replace trigger trig1
5 after insert or delete or update of sage on student
6 begin
7 dbms_output.put_line("正在执行trig1触发器...");
8 delete from stu_summary;
9 insert into stu_summary (sid,age_sum,stu_count)
10 select sid,sum(sage),count(*) from student group by sid;
11 end;
12 ');
13 end;
14 /
插入前
ERROR:
ORA-24344: 成功, 但出现编译错误
ORA-06512: 在 "SYS.DBMS_UTILITY", line 574
ORA-06512: 在 line 3警告: PL/SQL 编译错误。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货