写一个存储过程,然后由pb调用即可。
例:
CREATE OR REPLACE PROCEDURE compile_invalid_trigger
AS
CURSOR c1
IS SELECT * FROM user_objects WHERE object_type='TRIGGER' AND status='INVALID';
l_c1 c1%ROWTYPE;
sql_str VARCHAR2(200);
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO l_c1;
EXIT WHEN c1%NOTFOUND;
sql_str:='alter trigger '||l_c1.object_name||' compile';
-- dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END LOOP;
CLOSE c1;
END;
例:
CREATE OR REPLACE PROCEDURE compile_invalid_trigger
AS
CURSOR c1
IS SELECT * FROM user_objects WHERE object_type='TRIGGER' AND status='INVALID';
l_c1 c1%ROWTYPE;
sql_str VARCHAR2(200);
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO l_c1;
EXIT WHEN c1%NOTFOUND;
sql_str:='alter trigger '||l_c1.object_name||' compile';
-- dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END LOOP;
CLOSE c1;
END;
解决方案 »
- 新手 oracle求帮助
- 把字符转成日期插入到另一字段?
- 关于oracle10 重装的问题
- 看似简单,却又复杂的CONVERT问题 (Oracle 10g)
- ORACLE数据库windows XP中文版导入windows XP英文版出错
- 表空间相关(高手指点)
- windows xp 下Oracle9i oracle management server 起来又自动停止?
- PLSQL中使用数组的问题
- 通过oci执行带有to_date函数的SQL
- 导入不同名的database到另一个database,如何导?
- 不安装ORACLE客户端通过ODBC访问数据库的方法?
- 100分求删除sql,分不够再开贴给分
至于业务上的就让用户去检测。
我做后台维护的就显得不那么被动了。我觉得那个方法可行,不过好像有些trigger不合理的时候
那个字段并不是invalid的。。