Oracle 12c R2 Error Codes and Solution Suggestions from ORA-00900 to ORA-01100
Cause: for datatypes CHAR and RAW, the length specified was > 2000; otherwise, the length specified was > 4000.
Action: use a shorter length or switch to a datatype permitting a longer length such as a VARCHAR2, LONG CHAR, or LONG RAW
Cause: The identifier name started with an ASCII character other than a letter or a number. After the first character of the identifier name, ASCII characters are allowed including “$”, “#” and “_”. Identifiers enclosed in double quotation marks may contain any character other than a double quotation. Alternate quotation marks (q’#…#’) cannot use spaces, tabs, or carriage returns as delimiters. For all other contexts, consult the SQL Language Reference Manual.
Action: Check the Oracle identifier naming convention. If you are attempting to provide a password in the IDENTIFIED BY clause of a CREATE USER or ALTER USER statement, then it is recommended to always enclose the password in double quotation marks because characters other than the double quotation are then allowed.
Cause: one of your input strings was too long
Action: shorten the input parameter length
Cause: AUDIT or NOAUDIT statement contains an invalid auditing option.
Action: Use a valid option.
- ORA-00957: duplicate column name
- ORA-00958: missing CHECK keyword
- ORA-00959: tablespace ‘string‘ does not exist
- ORA-00960: ambiguous column naming in select list
Cause: A column name in the order-by list matches more than one select list columns.
Action: Remove duplicate column naming in select list.
Cause: The group-by or order-by column list contain more than 1000 expressions.
Action: Use 1000 or less expressions in the group-by or order-by list.
Cause: The table name referred in the select list is not specified in the from list.
Action: Make sure the name is correctly specified and matches one of the names in the from list.
Cause: The statement is trying to alias the * expression in the select list which is not legal.
Action: Remove the alias.
- ORA-00966: missing TABLE keyword
- ORA-00967: missing WHERE keyword
- ORA-00968: missing INDEX keyword
- ORA-00969: missing ON keyword
- ORA-00970: missing WITH keyword
- ORA-00971: missing SET keyword
- ORA-00972: identifier is too long
Cause: An identifier with more than 128 bytes was specified, or a password identifier longer than 30 bytes was specified.
Action: Specify at most 128 bytes for identifiers, and at most 30 bytes for password identifiers.
- ORA-00973: invalid row count estimate
- ORA-00974: invalid PCTFREE value (percentage)
- ORA-00975: date + date not allowed
- ORA-00976: Specified pseudocolumn or operator not allowed here.
Cause: LEVEL, PRIOR, ROWNUM, CONNECT_BY_ROOT, CONNECT_BY_ISLEAF or CONNECT_BY_ISCYCLE was specified at an illegal location.
Action: Remove LEVEL, PRIOR, ROWNUM, CONNECT_BY_ROOT, CONNECT_BY_ISLEAF or CONNECT_BY_ISCYCLE.
Cause: AUDIT or NOAUDIT statement specifies an option more than once
Action: Either use ALL with no other auditing options or make sure no option is listed more than once.
- ORA-00978: nested group function without GROUP BY
- ORA-00979: not a GROUP BY expression
- ORA-00980: synonym translation is no longer valid
Cause: A synonym did not translate to a legal target object. This could happen for one of the following reasons: 1. The target schema does not exist. 2. The target object does not exist. 3. The synonym specifies an incorrect database link. 4. The synonym is not versioned but specifies a versioned target object.
Action: Change the synonym definition so that the synonym points at a legal target object.
Cause: Table and system-wide auditing options were specified in the same AUDIT or NOAUDIT statement.
Action: You must issue table and system options in separate statements.
Cause: An attempt was made to AUDIT or NOAUDIT SYS user actions.
Action: Execute the statement again with a valid user.
- ORA-00984: column not allowed here
- ORA-00985: invalid program name
- ORA-00986: missing or invalid group name(s)
- ORA-00987: missing or invalid username(s)
- ORA-00988: missing or invalid password(s)
- ORA-00989: too many passwords for usernames given
- ORA-00990: missing or invalid privilege
- ORA-00991: only MAC privileges may be granted to procedures
Cause: Object privileges or non-MAC system privileges were granted to the procedure.
Action: Only grant MAC privileges using the PROCEDURE clause.
Cause: This error means that a fetch has been attempted from a cursor which is no longer valid. Note that a PL/SQL cursor loop implicitly does fetches, and thus may also cause this error. There are a number of possible causes for this error, including: 1) Fetching from a cursor after the last row has been retrieved and the ORA-1403 error returned. 2) If the cursor has been opened with the FOR UPDATE clause, fetching after a COMMIT has been issued will return the error. 3) Rebinding any placeholders in the SQL statement, then issuing a fetch before reexecuting the statement.
Action: 1) Do not issue a fetch statement after the last row has been retrieved – there are no more rows to fetch. 2) Do not issue a COMMIT inside a fetch loop for a cursor that has been opened FOR UPDATE. 3) Reexecute the statement after rebinding, then attempt to fetch again.
- ORA-01003: no statement parsed
- ORA-01004: default username feature not supported; logon denied
- ORA-01005: null password given; logon denied
- ORA-01006: bind variable does not exist
- ORA-01007: variable not in select list
- ORA-01008: not all variables bound
- ORA-01009: missing mandatory parameter
- ORA-01010: invalid OCI operation
Cause: One of the following: 1) You attempted an invalid OCI operation. 2) You are using an Oracle client application linked with version 7.1 (or higher) libraries, the environment variable ORA_ENCRYPT_LOGIN is set to TRUE, and you attempted to connect to a version 7.0 (or lower) Oracle Server. 3) You are connected to a version 7.1 (or higher) Oracle Server, the initialization parameter DBLINK_ENCRYPT_LOGIN is set to TRUE, and you attempted to use a database link pointing to a version 7.0 (or lower) Oracle Server. 4) You are connected to a version 9.0.2(or higher) Oracle Server and you attempted to use a database link pointing to a version 9.0.1(or lower) Oracle Server for distributed autonomous transaction.
Action: For the above causes: 1) Do not use the invalid OCI operation. 2) If you do not wish to use encrypted connect passwords in your distributed database, set ORA_ENCRYPT_LOGIN to FALSE. If you wish to use encrypted connect passwords, you must upgrade all Oracle Servers to version 7.1 (or higher). 3) If you do not wish to use encrypted database links in your distributed database, set DBLINK_ENCRYPT_LOGIN to FALSE. If you wish to use encrypted database links, you must upgrade all Oracle Servers to version 7.1 (or higher). 4) Do not attempt distributed autonomous transaction on version 9.0.1(or lower) Oracle Server.
Cause: Cursor in an invalid state.
Action: Make sure that the oci/upi function is called after fetch.
- ORA-01017: invalid username/password; logon denied
- ORA-01018: column does not have a LONG datatype
- ORA-01019: unable to allocate memory in the user side
Cause: The user side memory allocator returned error.
Action: Increase the processes heap size or switch to the old set of calls.
- ORA-01020: unknown context state
- ORA-01021: invalid context size specified
- ORA-01022: database operation not supported in this configuration
Cause: The attempted database operation does not conform to the user programming interface (UPI) for the two communicating ORACLE servers.
Action: You may need to upgrade one or more of your ORACLE servers or re-link your user side application with new libraries. Report the problem to Worldwide Customer Support.
Cause: The cursor number is not a valid open cursor.
Action: Make sure that the cursor is open.
Cause: An integer parameter to a upi function is out of range.
Action: This usually indicates an error in a tool built on top of the oracle dbms. Report the error to your customer support representative.
Cause: More than one long buffer in the bind list.
Action: Change the buffer size to be less than 4000 for the bind variable bound to a normal column.
Cause: An attempt was made to use a bind variable in a SQL data definition operation.
Action: Such bind variables are not allowed.
Cause: Received send long message but don’t have the cursor context.
Action: Report as a bug.
Cause: Received a request to send the long again when there is no long
Action: Report as a bug
Cause: The SELECT… INTO specified in the bind call does not correspond to a variable in the SQL statement.
Action: If it is not possible to correct the statement, call customer support.
Cause: An attempt was made to perform a database operation without the necessary privileges.
Action: Ask your database administrator or designated security administrator to grant you the necessary privileges
Cause: This is an internal error message related to Export/Import.
Action: Contact customer support.
Cause: An attempt was made to log on while Oracle is being started up or shutdown.
Action: Wait a few minutes. Then retry the operation.
Cause: Oracle was not started up. Possible causes include the following: – The SGA requires more space than was allocated for it. – The operating-system variable pointing to the instance is improperly defined.
Action: Refer to accompanying messages for possible causes and correct the problem mentioned in the other messages. If Oracle has been initialized, then on some operating systems, verify that Oracle was linked correctly. See the platform specific Oracle documentation.
Cause: Logins are disallowed because an instance started in restricted mode. Only users with RESTRICTED SESSION system privilege can log on.
Action: Request that Oracle be restarted without the restricted option or obtain the RESTRICTED SESSION system privilege.
Cause: Unable to find bind context on user side
Action: Make sure that the variable being bound is in the sql statement.
Cause: Attempting to process a complex sql statement which consumed all available memory of the cursor.
Action: Simplify the complex sql statement.
Cause: Attempting to write datafile headers in an old format. The new format can not be used until after the database has been verified as being compatible with this software version.
Action: Open the database to advance to the new file formats, then repeat the operation. If the operation is required before the database can be opened, then use the previous software release to do the operation.
Cause: Attempting to explain plan on other people’s view without the necessary privileges on the underlying objects of the view.
Action: Get necessary privileges or do not perform the offending operation.
Cause: There are multibyte characters in the password or some characters in the password are not in US7ASCII range.
Action: Resubmit password with valid characters.
Cause: Pointer to hstdef extension in hstdef is null.
Action: Report as a bug
Cause: An attempt was made to detach a seesio n which had open cursors.
Action: Close all the cursors before detaching the session.
Cause: The application code corrupted some of the usr memory used by oracle
Action: Make sure that the application code is not overwriting memory.
Cause: An attempt was made to bind a buffer whose total size would exceed the maximum size allowed. Total array size for arrays is calculated as: (element_size)*(number of elements)
Action: Reduce buffer size.
Cause: A connect was attempted to a userid which does not have create session privilege.
Action: Grant the user CREATE SESSION privilege.
- ORA-01046: cannot acquire space to extend context area
- ORA-01047: The above error occurred in schema=string, package=string, procedure=string
- ORA-01048: Couldn’t find the specified procedure in the given context
Cause: The procedure user specified in deferred RPC doesn’t exist.
Action: Check to make sure that the procedure exists and is visible to the replication process.
Cause: A newer version of server is talking with this version requesting an operation not supported in this version.
Action: n/a
Cause: The deferred rpc data in sys.def$_call is corrupted.
Action: Contact your customer support representive.
Cause: A valid destination for parameter LOG_ARCHIVE_DUPLEX_DEST was not specified when parameter LOG_ARCHIVE_MIN_SUCCEED_DEST was set to two.
Action: Either specify a value for parameter LOG_ARCHIVE_DUPLEX_DEST, or reduce the value for parameter LOG_ARCHIVE_MIN_SUCCEED_DEST to one.
- ORA-01053: user storage address cannot be read
- ORA-01054: user storage address cannot be written
- ORA-01055: Object datatypes not supported for bind or define in this mode
Cause: Bind or Define used for objects with an invalid mode
Action: Change the mode.
- ORA-01057: invalid or ambiguous block.field reference in user exit
- ORA-01058: internal New Upi interface error
Cause: Attempt to delete non existant hstdef extension.
Action: Report as a bug.
Cause: The client application attempted to bind a variable or execute a cursor opened in a PL/SQL block before the statement was parsed.
Action: Ensure the statement is parsed before a bind or execute.
Cause: The client application attempted to bind an array of cursors or attempted to repeatedly execute against a PL/SQL block with a bind variable of type cursor.
Action: Bind a single cursor or execute the PL/SQL block once.
Cause: You are using an Oracle client application linked with version 7 (or lower) libraries and you attempted to start up a V8 (or higher) server.
Action: Use a client application linked with V8 (or higher) libraries.60
Cause: Exceeded the maximum buffer size for current plaform
Action: Use piecewise fetch with a smaller buffer size
Cause: The total number of rows requested from the server exceeded the maximum specified in MINSWORDMAXVAL.
Action: Fix the number of rows to fetch or prefetch for the fetch interface call.
Cause: Using pre 7.0.10.1 version of oracle for server
Action: Upgrade server to post 7.0.10.1 version
Cause: Obvious
Action: n/a
Cause: Obvious
Action: n/a
Cause: An illegal internal operation was attempted.
Action: Contact your customer support representative.
Cause: Obvious
Action: n/a
Cause: Attempt to login while logged in.
Action: n/a
Cause: Obvious
Action: n/a
Cause: Failure during initialization of ORACLE background processes.
Action: Further diagnostic information should be in the error stack or in the trace file.
Cause: Failure during processing of INIT.ORA parameters during system startup.
Action: Further diagnostic information should be in the error stack.
Cause: There was an error when the database or control file was created.
Action: Check what error was signaled when the database was first created or when the control file was recreated. Take appropriate actions to recreate the database or a new control file.
Cause: Failure during system shutdown.
Action: Further diagnostic information should be in the error stack.
Cause: Obvious
Action: n/a
Cause: “row_locking = always” is specified in INIT.ORA file. This feature is not supported by ORACLE without the transaction processing option.
Action: Remove it from INIT.ORA file or set it to “default” or “intent”.
Cause: The value of the given parameter is required to be the same for all instances in the cluster database configuration. ROW_LOCKING and SERIALIZABLE are 2 examples.
Action: Change the value of the parameter in INIT.ORA file to match that of other cluster database instances.
Cause: The failing OCI call contains an argument with an invalid value.
Action: Use valid argument values. For more information, see the Programmer’s Guide to the Oracle Call Interfaces and the appropriate programming language supplement.
Cause: Errors were encountered when the named procedure was executed as a deferred remoted procedure call.
Action: Correct the cause of the preceding errors.
Cause: An attempt was made to roll back to a savepoint that was never established in this session, or was invalid.
Action: Try rolling back to the savepoint from the session where it is established.
- ORA-01087: cannot start up ORACLE – currently logged on
- ORA-01088: shutdown in progress – operation not permitted until restart
Cause: The SHUTDOWN command was used to shut down a running Oracle instance but the shutdown operation was not complete.
Action: Wait for the instance to be restarted or contact your database administrator.
Cause: The SHUTDOWN IMMEDIATE command was used to shut down a running Oracle instance, or CLOSE IMMEDIATE was used to shut down a pluggable database, so your operations have been terminated.
Action: Wait for the instance to be restarted, or contact your DBA.
Cause: The SHUTDOWN command was used to shut down a running ORACLE instance, so you cannot connect to ORACLE.
Action: Wait for the instance to be restarted, or contact your DBA.
Cause: Unable to destroy the old SGA.
Action: Manually remove the old SGA and reissue the STARTUP command
Cause: The instance this process was connected to was terminated abnormally, probably via a shutdown abort. This process was forced to disconnect from the instance.
Action: Examine the alert log for more details. When the instance has been restarted, retry action.
Cause: There is at least one more session other than the current one logged into the instance. ALTER DATABASE CLOSE is not permitted.
Action: Find the other sessions and log them out and resubmit the command
- ORA-01094: ALTER DATABASE or ALTER PLUGGABLE DATABASE CLOSE in progress. Connections not permitted
- ORA-01095: DML statement processed zero rows
Cause: During a call to OTEX, an update, delete, or insert statement being executed processed zero rows. The execution of statements by OTEX was halted at this point.
Action: n/a
Cause: A program is trying to connect to an instance using a different version of code than the database was started with. This is not allowed.
Action: Either relink the program with the same version as the database or restart the database using the old version of code.
Cause: Obvious
Action: n/a
- ORA-01098: program Interface error during Long Insert
- ORA-01099: cannot mount database in SHARED mode if started in single process mode
Cause: Obvious
Action: n/a
Cause: A database is already mounted in this instance.
Action: n/a