li
  当前位置:主页 > 性能优化 > 文章内容
li
ORA-600(923)错误
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:3  

今天在调用DBMS_UTILITY包的GET_PARAMETER_VALUE过程时出现了ORA-600错误。


由于测试的用户没有查看V$PARAMETER视图的权限,因此通过DBMS_UTILITY包来获取相应的初始化参数信息,但是执行下面的语句报错:

SQL> DECLARE
2 V_NUMBER NUMBER;
3 V_STR VARCHAR2(4000);
4 V_RES NUMBER;
5 BEGIN
6 V_RES := DBMS_UTILITY.GET_PARAMETER_VALUE('DB_BLOCK_SIZE', V_NUMBER, V_STR);
7 DBMS_OUTPUT.PUT_LINE(V_NUMBER);
8 END;
9 /
DECLARE
*
ERROR at line 1:
ORA-20000: get_parameter_value: invalid or unsupported parameter "DB_BLOCK_SIZE"
ORA-00600: internal error code, arguments: [923], [DB_BLOCK_SIZE], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_UTILITY", line 104
ORA-06512: at line 6

如果输入参数名称改为小写则不会报错:

SQL> SET SERVEROUT ON
SQL> DECLARE
2 V_NUMBER NUMBER;
3 V_STR VARCHAR2(4000);
4 V_RES NUMBER;
5 BEGIN
6 V_RES := DBMS_UTILITY.GET_PARAMETER_VALUE('db_block_size', V_NUMBER, V_STR);
7 DBMS_OUTPUT.PUT_LINE(V_NUMBER);
8 END;
9 /
8192

PL/SQL procedure successfully completed.

查询了一下metalink,发现果然是参数大小写的问题,导致了Oracle在处理过程中抛出异常。

Bug No. 3091998中有详细的描述,这个bug10.1.0.2中被fixed

SQL> SET SERVEROUT ON
SQL> DECLARE
2 V_NUMBER NUMBER;
3 V_STR VARCHAR2(4000);
4 V_RES NUMBER;
5 BEGIN
6 V_RES := DBMS_UTILITY.GET_PARAMETER_VALUE('DB_BLOCK_SIZE', V_NUMBER, V_STR);
7 DBMS_OUTPUT.PUT_LINE(V_NUMBER);
8 END;
9 /
16384

PL/SQL 过程已成功完成。

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production




  上一篇: 在远端和本地存储过程间传递数组   下一篇: DATA GURAD物理STANDBY建立
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·在远端和本地存储过程间传递数组
·触发器中获取SQL语句
·一个INSTEAD OF TRIGGER的例子
·Oracle9i的1467错误
·TO_LOB函数
·利用DBMS_METADATA包获取权限信息
·ORA-19206错误
·ORA-28595错误
·数值超过NUMBER最大表示范围的问...
·数值超过NUMBER最大表示范围的问...
·DATA GURAD物理STANDBY建立
·奇怪的ORA-1422错误
·利用VMWare建立11R1的物理DATA G...
·利用热备份建立物理STANDBY
·利用RMAN建立10GRAC数据库的DATA...
·RAC建立DATA GUARD环境后出现的1...
·DATA GUARD物理STANDBY的 SWITCH...
·SWITCHOVER RAC数据库出现ORA-10...
·ORA-19864错误
·DATA GUARD物理STANDBY的FAILOVE...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接