There is now a patch (17931569) for bug 18155614: “SR 3-9692688071 : Ora-600 when setting OCSID.DBOP tag with JDBC to a value larger than 29 byte”
In version 12.1.0.1 the following code fails with an ORA-00600 when ran in SQLPlus:
SET SERVEROUTPUT ON DECLARE EID1 NUMBER; THENAME VARCHAR2(40); NEWMAX NUMBER; BEGIN FOR I IN 27..30 LOOP THENAME := RPAD('#', I, 'a'); DBMS_OUTPUT.PUT_LINE(I || ': ' || THENAME); EID1 := DBMS_SQL_MONITOR.BEGIN_OPERATION(THENAME); SELECT MAX(LENGTH(DBOP_NAME)) INTO NEWMAX FROM V$SQL_MONITOR; DBMS_OUTPUT.PUT_LINE('EID : ' || EID1); DBMS_OUTPUT.PUT_LINE('newMax: ' || NEWMAX); DBMS_SQL_MONITOR.END_OPERATION(LTRIM(THENAME), EID1); END LOOP; EXCEPTION WHEN OTHERS THEN IF(SQLCODE = -13755) THEN DBMS_OUTPUT.PUT_LINE('Invalid SQL Tuning Set name: ' || THENAME); END IF; IF(SQLCODE = -600) THEN DBMS_OUTPUT.PUT_LINE('ORA-600 on DBOP name[' || LENGTH(THENAME) || ']: '|| THENAME); END IF; RAISE; END; /
Error output:
Error report - ORA-00600: internal error code, arguments: [1:keommBeginOperation], [], [], [], [], [], [], [], [], [], [], [] ORA-06512: at line 29 00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]" *Cause: This is the generic internal error number for Oracle program exceptions. This indicates that a process has encountered an exceptional condition. *Action: Report as a bug - the first argument is the internal error number
Post a Comment