重新编译数据库中的失效对象
来源:互联网 发布:淘宝部分商品退款 编辑:程序博客网 时间:2024/04/28 00:59
DECLARE
obj_number number := 0;
cursor C1 is select o.obj#,
'ALTER ' || decode (o.type#,
4, 'VIEW ',
7, 'PROCEDURE ',
8, 'FUNCTION ',
9, 'PACKAGE ',
11, 'PACKAGE ',
12, 'TRIGGER ',
13, 'TYPE ',
14, 'TYPE ',
' ') ||
'"' || u.name || '"."' || o.name || '" COMPILE ' ||
decode (o.type#,
9, 'SPECIFICATION',
11, 'BODY',
13, 'SPECIFICATION',
14, 'BODY',
' ')
from SYS.obj$ o, SYS.user$ u
where o.obj# > obj_number and
u.user# = o.owner# and o.remoteowner is NULL and
o.status in (4,5,6) and o.type# in (4, 7, 8, 9, 11, 12, 13, 14)
order by o.obj#;
DDL_CURSOR integer;
ddl_statement varchar2(200);
iterations number;
loop_count number;
my_err number;
validate number;
BEGIN
loop_count := 0;
select count(*) into iterations from SYS.obj$ where remoteowner is NULL and
status in (4,5,6) and type# in (4, 7, 8, 9, 11, 12, 13, 14);
DDL_CURSOR := dbms_sql.open_cursor;
OPEN C1;
BEGIN
FETCH C1 INTO obj_number, ddl_statement;
EXIT WHEN C1%NOTFOUND OR loop_count > iterations;
EXCEPTION
WHEN OTHERS THEN
my_err := SQLCODE;
IF my_err = -1555 THEN
CLOSE C1;
OPEN C1;
GOTO continue;
ELSE
RAISE;
END IF;
END;
select count(*) into validate from SYS.obj$ where obj# = obj_number and
status in (4,5,6);
IF validate = 1 THEN
BEGIN
dbms_sql.parse(DDL_CURSOR, ddl_statement, dbms_sql.native);
EXCEPTION
WHEN OTHERS THEN
null;
END;
END IF;
<<continue>>
loop_count := loop_count + 1;
END
dbms_sql.close_cursor(DDL_CURSOR);
CLOSE C1;
END;
/
- 重新编译数据库中的失效对象
- 重新编译数据库中的失效对象
- 重新编译数据库中的失效对象
- 编译数据库中的失效对象utlrp.sql
- Oracle失效对象自动重新编译
- Oracle失效对象自动重新编译
- oracle编译数据库失效对象
- 对数据库失效对象的编译
- 重新编译ORACLE中的INVALID对象
- ORACLE编译失效对象
- sqlplus编译失效对象
- Scripts:重新编译失效对象的脚本(生产环境慎用)dba_recompile_invalid_objects.sql
- Oracle 重新编译对象
- 数据库访问对象失效
- Oracle数据库对象失效
- 失效的程序单元的重新编译
- ORACLE编译失效对象小结
- ORACLE编译失效对象小结
- fcitx 在英文环境下的安装和配置
- SQL Server 数据库突然不能使用解决问题回顾
- 保持TreeView(微软的)父子节点的CheckBox节点状态一致的一种方法
- 当SQL Server数据库崩溃时如何恢复?
- Session
- 重新编译数据库中的失效对象
- [原创] 脚本与批处理合二为一-----(1)JaveScript篇
- PHP | Work 2005 的几个幻灯片
- 自定义 Korn Shell、Bash 和 C Shell 的提示符。
- DBGrid排序
- 正则表达式
- 打造个人品牌的十大项目
- 成为软件工匠
- 深入delphi编程