Tag Archives: pl/sql

ORA-7445(opipls)错误

客户的9206数据库出现ORA-7445错误。 错误信息: Fri Apr 17 09:11:24 2009 Errors IN file /opt/app/admin/orcl/udump/orcl1_ora_15039.trc: ORA-07445: exception encountered: core dump [000000010102BD1C] [SIGSEGV] [Address NOT mapped TO object] [0x000000004] [] [] Fri Apr 17 09:11:25 2009 Trace dumping IS performing id=[cdmp_20090417091125] 导致该错误详细信息: *** 2009-04-17 09:11:24.746 … Continue reading

Posted in BUG | Tagged , , | Leave a comment

PLSQL声明部分异常捕获

近期在看PL/SQL的文档,发现了很多有趣的小知识点,有的以前知道,也有很多以前并不了解的,写出来和大家分享一下。 这篇描述异常捕获的作用范围。 PL/SQL的异常捕获只针对执行部分,在声明部分产生的异常是无法捕获的: SQL> SET serverout ON SIZE 100000 SQL> DECLARE 2 v_num NUMBER; 3 BEGIN 4 v_num := ‘a’; 5 exception 6 WHEN others THEN 7 dbms_output.put_line(’Exception captured!’); 8 END; 9 / Exception captured! PL/SQL PROCEDURE successfully completed. SQL> … Continue reading

Posted in ORACLE | Tagged , , | Leave a comment

SQLPLUS小技巧带行号PLSQL的粘贴

前两天写了一篇如何在SQLPLUS中粘贴SQL语句,但是改方法对于SQL有效,对于PL/SQL语句则存在一些小问题。 SQLPLUS小技巧带行号SQL的粘贴:http://yangtingkun.net/?p=1167 还是在sqlplus中粘贴带行号的问题,对于PL/SQL,之前给出的方法存在问题: SQL> DECLARE 2 V_NUM NUMBER; 3 BEGIN 4 FOR I IN 1..10000 LOOP 5 NULL; 6 END LOOP; 7 END; 8 / PL/SQL PROCEDURE successfully completed. SQL> DECLARE 2 . SQL> 2 V_NUM NUMBER; SQL> 3 BEGIN … Continue reading

Posted in ORACLE | Tagged , , , , , | Leave a comment

小议ROWNUM

如何使用ROWNUM是个老生常谈的问题了,本来没有打算专门强调这个问题,但是最近在看Oracle的官方PL/SQL文档时发现了一个严重的错误,借这个机会还是简单说一下。 首先来看Oracle文档的描述,在10.2的PL/SQL文档中,Oracle关于PL/SQL中直接使用SELECT的查询描述为: Selecting At Most One ROW: SELECT INTO Statement IF you expect a query TO ONLY RETURN one ROW, you can WRITE a regular SQL SELECT statement WITH an additional INTO clause specifying the PL/SQL variable TO hold the … Continue reading

Posted in ORACLE | Tagged , | Leave a comment

ORA-600(qertbFetchByRowID)错误

以前也碰到过这个错误,不过由于无法直接连接数据库,没有办法深入分析。这次虽然同样没有办法连接数据库,但是获取了更详细的信息,基本确定导致问题的原因。 错误信息如下: Wed May 09 10:41:32 2012 Errors IN file /oracle/admin/orcl/udump/orcl_ora_423466.trc: ORA-00600: internal error code, arguments: [qertbFetchByRowID], [], [], [], [], [], [], [] 其实从错误信息不难分析,导致问题的原因和索引有关,错误信息明确指出了问题发生在通过ROWID信息读取表时,而通过ROWID读取是索引扫描的标志。 一般来说这种问题是索引和表上数据的逻辑损坏造成的,如果问题出现在索引上,那么最简单的办法莫过于删除重建索引,或者使用ONLINE方式重建索引。 将索引删除后,问题果然不再出现,但是尝试重建索引时,引发了另一个ORA-600错误: SQL> analyze TABLE tab_a validate STRUCTURE cascade online; analyze TABLE tab_a validate STRUCTURE … Continue reading

Posted in BUG | Tagged , , , , | Leave a comment

ORA-600(kgavsd_3)错误

客户9208环境出现ORA-600[kgavsd_3]错误。 错误信息为: Thu DEC 15 15:47:57 2011 Errors IN file /oracle/admin/orcl/udump/orcl2_ora_659472.trc: ORA-00600: internal error code, arguments: [kgavsd_3], [0], [], [], [], [], [], [] ORA-00604: error occurred at recursive SQL level 2 ORA-03113: end-of-file ON communication channel ORA-03113: end-of-file ON … Continue reading

Posted in BUG | Tagged , , , , , , | Leave a comment