Ora-600 when setting OCSID.DBOP tag with JDBC to a value larger than 29 byte

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

Your email is never published nor shared. Required fields are marked *