如题,我自己的理解是valid和invalid状态表示编译能不能通过的状态,enable/disable表示的是:编译通过了,只是设置了可不可用状态。不知道我这样理解对不对?
解决方案 »
- 数据库架构询问
- redhat Linux9下安装oracle10g报错Error in writing to directory
- 如何查看执行计划的优劣,请教各位大哥大姐了!!!!!
- 急!求助 ora-1122 can not open database!!!!
- 这个sql 怎么处理阿
- 日期+流水號0001
- 请高手指点SQL语句
- 请教:Oracle中AutoID表有什么用!
- PL/SQL开发有关的视频学习资料就绪。
- windows server 2008 R2系统下Oracle VM VirtualBox不能为虚拟电脑打开一个新任务?
- 在9i里面想自己写一个wm_contanct函数,来实现在10g里面的列合并的功能!
- 截取字符串函数
你查看dba_triggers视图就知道了
你的假设命题,怎么成立的?只要该触发器引用的依赖对象在,编译没问题,而你也并未手工disable之,它就能用。你怎么弄的它时间长了就不能用了?描述清楚点。
对oracle不是很了解,假设就是编译能过,但是就是不能用了,一个假设而已,那应该是什么状态呢?
SQL> create or replace trigger trig_test
2 before INSERT on test
3 for each row
4 DECLARE
5 begin
6 NULL;
7 end trig_test;
8 /触发器已创建SQL> show error
没有错误。
SQL>
SQL> SELECT t.trigger_name,t.status,o.status FROM User_Triggers t,user_objects o 2 WHERE o.object_name=t.trigger_name AND o.object_type='TRIGGER';TRIGGER_NAME STATUS STATUS
------------------------------ -------- -------
TRIG_TEST ENABLED VALIDSQL> alter trigger TRIG_TEST disable;触发器已更改SQL> SELECT t.trigger_name,t.status,o.status FROM User_Triggers t,user_objects o 2 WHERE o.object_name=t.trigger_name AND o.object_type='TRIGGER';TRIGGER_NAME STATUS STATUS
------------------------------ -------- -------
TRIG_TEST DISABLED VALIDSQL>