Oracle 12c R2 Error Codes and Solution Suggestions from ORA-06500 to ORA-06600
- ORA-06500: PL/SQL: storage error
Cause: PL/SQL was unable to allocate additional storage. This message normally appears with an ORA-4030 or ORA-4031 error which gives additional information. Sometimes this error can be caused by runaway programs.
Action: 1) Ensure there are no issues or bugs in your PL/SQL program which are causing excessive amounts of memory to be used. 2) Programmatically cause unused objects to be freed (e.g. by setting them to NULL). 3) Increase the amount of shared or process memory (as appropriate) available to you.
Cause: This is an internal error message. An error has been detected in a PL/SQL program.
Action: Contact Oracle Support Services.
Cause: An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).
Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.
Cause: A call to PL/SQL function completed, but no RETURN statement was executed.
Action: Rewrite PL/SQL function, making sure that it always returns a value of a proper type.
Cause: Number and/or types of columns in a query does not match declared return type of a result set variable, or declared types of two Result Set variables do not match.
Action: Change the program statement or declaration. Verify what query the variable actually refers to during execution.
Cause: A PL/SQL variable was declared with a constraint which required more than 32767 bytes of memory. PL/SQL does not currently support allocations of contiguous memory greater than 32767 bytes.
Action: Consider reducing the constraint in the variable declaration. If that is not possible, try changing the database or national character set to such, that requires less memory for the same constraint. Note: changing the character set will impact execution of all PL/SQL code.
- ORA-06508: PL/SQL: could not find program unit being calledstring
- ORA-06509: PL/SQL: ICD vector missing for this package
- ORA-06510: PL/SQL: unhandled user-defined exception
Cause: A user-defined exception was raised by PL/SQL code, but not handled.
Action: Fix the problem causing the exception or write an exception handler for this condition. Or you may need to contact your application administrator or DBA.
Cause: An attempt was made to open a cursor that was already open.
Action: Close cursor first before reopening.
Cause: Backtrace message as the stack is unwound by unhandled exceptions.
Action: Fix the problem causing the exception or write an exception handler for this condition. Or you may need to contact your application administrator or DBA.
Cause: An attempt is being made to copy a PL/SQL table to a host language array. But an index in the table is either less than one or greater than the maximum size of the host language array. When copying PL/SQL tables to host language arrays, the table entry at index 1 is placed in the first element of the array, the entry at index 2 is placed in the second element of the array, etc. If an table entry has not been assigned then the corresponding element in the host language array is set to null.
Action: Increase size of host language array, or decrease size of PL/SQL table. Also make sure that you don’t use index values less than 1.
Cause: The remote call has parameters that are cursor variables or lob variables. This cannot be handled by stored procedures on your server.
Action: Avoid using cursor variables or lob variables as parameters for stored procedures on this server or upgrade your server to a version that supports this.
Cause: An exception was raised by PL/SQL code, but not handled. The exception number is outside the legal range of Oracle errors.
Action: Fix the problem causing the exception or write an exception handler for this condition. Or you may need to contact your application administrator or DBA.
Cause: A Probe operation, probably an attempt to initialize the ORACLE server to debug PL/SQL, could not be completed because the Probe packages were not loaded or have become invalid.
Action: DBA should load the Probe packages. This can be done by running the pbload.sql script supplied with the RDBMS.
Cause: An error occurred while passing a Probe operation to the server for execution.
Action: Refer to the entry for the embedded error message.
Cause: The current version of Probe is incompatible with the version on the ORACLE server.
Action: Refer to the documentation to ensure that this degree of compatibility is supported.
Cause: Before returning from an autonomous PL/SQL block, all autonomous transactions started within the block must be completed (either committed or rolled back). If not, the active autonomous transaction is implicitly rolled back and this error is raised.
Action: Ensure that before returning from an autonomous PL/SQL block, any active autonomous transactions are explicitly committed or rolled back.
Cause: An error was detected by PL/SQL trying to load the external library dynamically.
Action: Check the stacked error (if any) for more details.
Cause: An error was detected by PL/SQL trying to map the mentioned function dynamically.
Action: Check the stacked error (if any) for more details.
Cause: ORA-06520 or ORA-065211 could stack this error with a system specific error string.
Action: This error string should give the cause for errors ORA-06520 or ORA-065211
Cause: There is an upper limit on the number of arguments that one can pass to the external function.
Action: Check the port specific documentation on how to calculate the upper limit.
Cause: The option specified is an unsupported feature for external procedures.
Action: Correct the syntax in the external specification
Cause: The length specified in the length variable has an illegal value. This can happen if you have requested requested a PL/SQL INOUT, OUT or RETURN raw variable to be passed as a RAW with no corresponding length variable. This error can also happen if there is a mismatch in the length value set in the length variable and the length in the orlvstr or orlraw.
Action: Correct the external procedure code and set the length variable correctly.
Cause: PL/SQL was unable to instantiate the library referenced by this referenced in the EXTERNAL syntax. This is a serious error and should normally not happen.
Action: Report this problem to customer support.
Cause: An error occurred in sqllib during execution of a Pro* external procedure.
Action: The message text indicates the actual SQLLIB error that occurred. Consult the Oracle Error Messages and Codes manual for a complete description of the error message and follow the appropriate action.
Cause: An error occurred in during execution of a PL/SQL profiler procedure.
Action: Check the stacked errors for more details.
Cause: The PL/SQL profiler package (dbmspb.sql, prvtpbp.plb) does not match the version of the code in the server implementing the profiler.
Action: Run the package profload.sql in $ORACLE_HOME/rdbms/admin to load the correct version of the PL/SQL profiler packages
Cause: An object, LOB, or other composite was referenced as a left hand side without having been initialized.
Action: Initialize the composite with an appropriate constructor or whole-object assignment.
Cause: An element or member function of a nested table or varray was referenced (where an initialized collection is needed) without the collection having been initialized.
Action: Initialize the collection with an appropriate constructor or whole-object assignment.
Cause: A subscript was greater than the limit of a varray or non-positive for a varray or nested table.
Action: Check the program logic and increase the varray limit if necessary.
Cause: An in-limit subscript was greater than the count of a varray or too large for a nested table.
Action: Check the program logic and explicitly extend if necessary.
Cause: The program attempted to access a Serially Reusable package in PL/SQL called from SQL context (trigger or otherwise). Such an access is currently unsupported.
Action: Check the program logic and remove any references to Serially Reusable packages (procedure, function or variable references) which might happen in PL/SQL called from sql context (trigger or otherwise).
Cause: The program attempted to use a dynamic statement string that was either NULL or 0 length.
Action: Check the program logic and ensure that the dynamic statement string is properly initialized.
Cause: The program attempted to bind an IN bind variable to a statement that was expecting an OUT bind variable at that position.
Action: Make sure that an OUT or IN OUT bind mode is specified for the bind argument.
Cause: The program attempted to bind an OUT bind variable to a statement that was expecting an IN bind variable at that position.
Action: Make sure that an IN or IN OUT bind mode is specified for the bind argument.
Cause: The program attempted to execute a dynamic statement which does not meet the purity level specified (in the pragma RESTRICT_REFERENCES directive) for the module executing the statement.
Action: Ensure that the dynamic statement meets the purity level specified for the module executing the statement.
Cause: The program attempted to perform an OPEN cursor operation on a dynamic statement that was not a query.
Action: Ensure that the OPEN cursor operation is done on a dynamic query statement.
Cause: A pl/sql compilation error occurred. However, the user generally will not see this error message. Instead, there will be accompanying PLS-nnnnn error messages.
Action: See accompanying PLS-nnnnn error messages.
Cause: A pl/sql compilation error occurred and the compilation was aborted; but the compilation unit was written out to the backing store. However, unlike ora-06545, the user generally will not see this error message. Instead, there will be accompanying PLS-nnnnn error messages.
Action: See accompanying PLS-nnnnn error messages.
- ORA-06542: PL/SQL: execution error
- ORA-06543: PL/SQL: execution error – execution aborted
- ORA-06544: PL/SQL: internal error, arguments: [string], [string], [string], [string], [string], [string], [string], [string]
Cause: A pl/sql internal error occurred.
Action: Report as a bug; the first argument is the internal error nuber.
Cause: A pl/sql compilation error occurred and the compilation was aborted completely without the compilation unit being written out to the backing store. Unlike ora-06541, the user will always see this error along with the accompaning PLS-nnnnn error messages.
Action: See accompanying PLS-nnnnn error messages.
Cause: DDL statement is executed dynamically in illegal PL/SQL context. – Dynamic OPEN cursor for a DDL in PL/SQL – Bind variable’s used in USING clause to EXECUTE IMMEDIATE a DDL – Define variable’s used in INTO clause to EXECUTE IMMEDIATE a DDL
Action: Use EXECUTE IMMEDIATE without USING and INTO clauses to execute the DDL statement.
Cause: EXECUTE IMMEDIATE with a RETURNING clause is used to execute dynamic UPDATE, INSERT, or DELETE statements only.
Action: use RETURNING clause in EXECUTE IMMEDIATE for INSERT, UPDATE, or DELETE statements only. For other statements, use USING clause instead.
Cause: The caller of a pipelined function did not need more rows to be produced by the pipelined function.
Action: Do not catch the NO_DATA_NEEDED exception in an exception handling block.
Cause: One possible cause might be there are too many DLLs open at the same time.
Action: ——————————————————–
Cause: Usually a PL/SQL compilation error.
Action: n/a
- ORA-06551: PL/SQL: Unhandled exception
- ORA-06552: PL/SQL: string
- ORA-06553: PLS-string: string
- ORA-06554: package DBMS_STANDARD must be created before using PL/SQL
Cause: The DBMS specific extensions to PL/SQL’s package “STANDARD” are in package “DBMS_STANDARD”. This package must be created before using PL/SQL.
Action: Create package “DBMS_STANDARD”. The source for this PL/SQL stored package is provided with the distribution.
Cause: You tried to create a package named “STANDARD”, “DBMS_STANDARD” or “DEBUG_IO”. These are currently reserved for use by user SYS.
Action: Choose another name for your package.
Cause: There are no more items in the pipe.
Action: Check that the sender and receiver agree on the number and types of items placed on the pipe.
Cause: Internal error from the dbms_pipe package.
Action: n/a
Cause: The pipe buffer size has been exceeded.
Action: n/a
Cause: The sender put different datatype on the pipe than that being requested (package ‘dbms_pipe’). The numbers are: 6 – number, 9 – char, 12 – date.
Action: Check that the sender and receiver agree on the number and types of items placed on the pipe.
Cause: Internal error from the dbms_pipe package.
Action: n/a
Cause: Attempting to parse an unsupported statement using procedure PARSE provided by package DBMS_SQL.
Action: Only statements which begin with SELECT, DELETE, INSERT, UPDATE, LOCK, BEGIN, DECLARE or << (PL/SQL label delimiter) are supported.
Cause: Attempting to get the value of a column or a bind variable by calling procedure COLUMN_VALUE or VARIABLE_VALUE of package DBMS_SQL but the type of the given out argument where to place the value is different from the type of the column or bind variable that was previously defined by calling procedure DEFINE_COLUMN (for defining a column) or BIND_VARIABLE (for binding a bind variable) of package DBMS_SQL.
Action: Pass in an out argument of the correct type when calling procedure COLUMN_VALUE or VARIABLE_VALUE. The right type is the type that was provided when defining the column or binding the bind variable.
Cause: The name to be resolved was specified as one of the following: – With three parts (A.B.C) but the A.B parts resolved to an object that did not expose visible nested procedures; the C part could not be resolved. – With two parts (A.B) and the A part resolved to an object that did not expose visible nested procedures; the B part could not be resolved.
Action: Specify the valid name of an object or of a packaged procedure or function without specifying any additional trailing parts.
Cause: The named object could not be found. Either it does not exist or you do not have permission to access it.
Action: Create the object or get permission to access it.
Cause: The named procedure cannot be executed from within a stored procedure, function or package. This function can only be used from pl/sql anonymous blocks.
Action: Remove the procedure from the calling stored procedure.
Cause: An invalid number of rows was specified in a call to the procedure DEFINE_COLUMN in the package DBMS_SQL. For a given parsed statement in a given cursor, all columns must be defined to have the same number of rows, so all the calls to DEFINE_COLUMN must specify the same number of rows.
Action: Specify a number that matches that for previously defined columns.
Cause: An invalid number of values to be bound was specified in a call to the procedure BIND_VARIABLE in the package DBMS_SQL. In order to execute a given parsed statement in a given cursor, the same number of values must have been bound for all bind variables, so when EXECUTE is called, the latest calls to BIND_VARIABLE must must have specified the same number of values to be bound for all bind variables.
Action: Make sure that the same number of values have been bound for all of the bind variables.
Cause: An obsolete ICD procedure was called by a PL/SQL program. The PL/SQL program was probably written for an eralier release of RDBMS.
Action: Make sure that all PL/SQL programs have been upgraded to the latest release of the RDBMS. This can be accomplished by following upgrade instructions in the README file, or by running the catproc.sql script supplied with the RDBMS.
Cause: A collection with zero elements was bound to a bind variable in a call to procedure BIND_ARRAY in the package DBMS_SQL. In order to execute a bind of a collection, the collection must contain at least one element. If no elements are present then at execute time there will be no value for this bind and the statement is meaningless.
Action: Fill the collection with the elements you want to bind and try the bind call again.
Cause: The specified shared pool shared cursor could not be found, therefore it cannot be pinned/purged.
Action: Make sure that a correct shared cursor name is given. Names are a string of the form ‘HHHHHHHH,SDDDDDDDDDD’ where the H’s are an 8 digit hex number from the ‘address’ column of v$sqlarea, and the D’s are a 1 to 10 digit decimal number with an optional leading sign (from the ‘hash_value’ column) Remove the procedure from the calling stored procedure.
Cause: There are two possible causes for this message: * A SQL statement references a packaged, PL/SQL function that does not contain a pragma that prevents the database from being updated. * A SQL statement references a stand-alone, PL/SQL function that contains an instruction to update the database.
Action: If the referenced function is a packaged, PL/SQL function: Recreate the PL/SQL function with the required pragma; be certain to include the ‘Write No Database State’ (WNDS) argument in the argument list of the pragma. If the referenced function is a stand-alone, PL/SQL function: Do not use the function.
Cause: A SQL statement references either a packaged, or a stand-alone, PL/SQL function that contains an OUT parameter in its argument list. PL/SQL functions referenced by SQL statements must not contain the OUT parameter.
Action: Recreate the PL/SQL function without the OUT parameter in the argument list.
Cause: There are two possible causes for this message: * A SQL statement references a packaged, PL/SQL function that does not contain a pragma containing the ‘Write no Package State’ (WNPS). * A SQL statement references a stand-alone, PL/SQL function that modifies a package state. A stand-alone, PL/SQL function referenced by a SQL statement cannot modify a package state.
Action: If the function is a packaged, PL/SQL function: Recreate the function and include a pragma containing the ‘Write no Package State’ (WNPS). If the function is a stand-alone, PL/SQL function: Delete the function from the SQL statement.
Cause: There are two possible causes for this message: * A remote, packaged function or a remote-mapped, local, packaged function that does not contain a pragma with the ‘Write no Package State’ (WNPS) and ‘Read no Package State’ (RNPS) arguments references a package state. * A remote, stand-alone function or a remote-mapped, local, stand-alone function contains a reference to a package state (reads or writes a package variable). Only local functions that are referenced in a SELECT list, VALUES clause of an INSERT statement, or SET clause of an UPDATE statement can modify a package state.
Action: If the function is a packaged function: Recreate the function and include a pragma containing the ‘Write no Package State’ (WNPS) and ‘Read no Package State’ (RNPS) arguments. If the function is a stand-alone function: Do not call the function.
Cause: A SQL statement references a PL/SQL function that is in an invalid state. Oracle attempted to compile the function, but detected errors.
Action: Check the SQL statement and the PL/SQL function for syntax errors or incorrectly assigned, or missing, privileges for a referenced object.
Cause: Could not find a function (if an INTO clause was present) or a procedure (if the statement did not have an INTO clause) to call.
Action: Change the statement to invoke a function or procedure
Cause: The argument corresponding to an IN/OUT or OUT parameter for a function or a procedure or a function return value in a CALL statement must be a bind variable.
Action: Change the argument to a bind variable
Cause: The bind variable corresponding to an IN/OUT or OUT parameter for a function or a procedure or a function return value in a CALL statement cannot be a duplicate bind variable.
Action: Change the bind variable to be unique
Cause: The bind variable specified by the user is not large enough to hold the output returned by the function or a procedure.
Action: Specify a bind variable of larger size.
Cause: Hash Join reserves 3 slots (each slot size = DB_BLOCK_SIZE * HASH_JOIN_MULTIBLOCK_IO_COUNT) for a row. If a row is larger than that, this error will be raised.
Action: Increase HASH_JOIN_MULTIBLOCK_IO_COUNT so that each joined row fits in a slot. HASH_AREA_SIZE may also need to be increaed.
Cause: A CASE statement must either list all possible cases or have an else clause.
Action: Add all missing cases or an else clause.
Cause: Specified feature is not yet supported for natively compiled PL/SQL modules yet.
Action: Recompile the relevant PL/SQL modules in non-native mode by setting the parameter plsql_compiler_flags to INTERPRETED.
Cause: An attempt was made to make a forwarded RPC call with a REF CURSOR parameter.
Action: Either call the remote function directly (i.e., not by way of forwarding), or move the remote function to a database where it can be called directly.
Cause: The specified object was permanently kept, therefore, cannot be purged.
Action: Use DBMS_SHARED_POOL.UNKEEP procedure to unkeep the object and then purge it.
- ORA-06597: Failed to increase the session’s call stack memory to string bytes at a depth of string calls. (The current maximum is string bytes.)
Cause: PL/SQL program execution used more call stack memory than permitted.
Action: * Ask your DBA to increase the maximum allowed call stack memory. * Decrease the amount of call stack used by the program. This may be accomplished by using fewer, smaller local variables, or by limiting the depth of function call nesting.
Cause: An attempt was made to run an AUTHID CURRENT_USER function or procedure, or to reference a BEQUEATH CURRENT_USER view, and the owner of that function, procedure, or view lacks INHERIT PRIVILEGES privilege on the calling user.
Action: Either do not call the function or procedure or reference the view, or grant the owner of the function, procedure, or view INHERIT PRIVILEGES privilege on the calling user.
Cause: An attempt was made to perform certain large object (LOB) date type operations (for example, deep copying of a temporary or abstract LOB on the client side) while performing a remote procedural call (RPC). This is not currently supported.
Action: Perform the LOB operation in question before starting the RPC. Or, perform those LOB operations on the server side instead of the client side.
Cause: The SNA software is not running.
Action: Start the SNA software and try again.