Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1705755
  • 博文数量: 136
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3261
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-22 11:26
文章分类

全部博文(136)

文章存档

2010年(1)

2009年(26)

2008年(109)

我的朋友

分类: Oracle

2008-12-09 20:36:29

这个错误是 drop 用户时产生的,用户无法 drop。既然如此,登录该用户删除其中的procedure,结果也出现了该错误。介绍说这是 Oracle 的一个 bug(No. 2422726),并给出了解决办法。这里记录一下:
 
1. 错误现象:
SQL> show user
USER 为"SYS"
SQL> select * from v$version;
 
BANNER
------------------------------------------------------------
Oracle8i Release 8.1.6.0.0 - Production
PL/SQL Release 8.1.6.0.0 - Production
CORE    8.1.6.0.0       Production
TNS for 32-bit Windows: Version 8.1.6.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
 
SQL> drop user hos_kf_hl cascade;
drop user hos_kf_hl cascade
*
ERROR 位于第 1 行:
ORA-00600: 内部错误代码,自变量: [16201], [], [], [], [], [], [], []
 
SQL> conn hos_kf_hl/test@qmyb
已连接。
SQL> drop procedure kill_session;
drop procedure kill_session
*
ERROR 位于第 1 行:
ORA-00600: 内部错误代码,自变量: [16201], [], [], [], [], [], [], []
 
2. 查询视图 procedure$,确认该错误:
SQL> select obj#,owner#,type# from sys.obj$ where name ='KILL_SESSION' and owner#=96;
 
      OBJ#     OWNER#      TYPE#
---------- ---------- ----------
     55491         96          7
 
SQL> select * from procedure$ where obj# = 55491;
 
      OBJ# AUDIT$                                 STORAGESIZE    OPTIONS
---------- -------------------------------------- ----------- ----------
 
3. 解决
SQL> insert into procedure$ values (55491, '----------------', null, 2);
 
1 row inserted
 
SQL> commit;
 
Commit complete
 
SQL> drop procedure kill_session;
 
过程已丢弃。
 
SQL> conn sys/password@s177 as sysdba
已连接。
SQL> drop user hos_kf_hl cascade;
 
用户已丢弃
阅读(3304) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~