创建一个触发在甲骨文..质疑触发器
SQL> CREATE OR REPLACE TRIGGER student_after_insert
2 AFTER INSERT
3 ON student
4 FOR EACH ROW
5 BEGIN
6 @hello.pl
9 END student_after_insert;
10/
hello.pl的内容是: -
BEGIN
DBMS_OUTPUT.PUT_LINE('hello world');
END;
和..结果是相当不错的,因为插入记录时,屏幕上会显示hello.pl的内容。
现在,查询是 - 当我更改hello的内容时.pl文件,从oracle退出,然后再次登录,它不显示更新的内容,而是显示以前的内容。
我注意到,如果我放下触发器并重新创建,那么它工作正常..为什么会发生这样的事情..什么是这个问题的解决方案..
你想维护数据库外的PL/SQL * *吗? – 2010-05-13 05:17:05
是的......我想维护数据库之外的PL/SQL代码..另外,如果pl/sql代码改变了,那么它应该在触发器本身中反映出来..动态工作.. – AGeek 2010-05-13 06:11:05
那么,* even如果在数据库之外有*代码的方法,那么代码必须在执行前进行编译,否则你将无法解决这个问题。另外,用“外部代码”,你必须记住,这样的代码不会被备份。因此,如果您必须恢复数据库,则还必须恢复“动态”触发器。最后,使用“动态”触发器,您不能使用'all_errors'来查看是否存在无效对象。 – 2010-05-13 07:18:40