Oracle 11g Error Codes and Solution Suggestions from ORA-22000 to ORA-22300
- ORA-22053: overflow error
- Cause: This operation’s result is above the range of Oracle number.
- Action: Decrease the input value(s) so that the result is in the range of Oracle number.
- ORA-22054: underflow error
- Cause: This operation’s result is below the range of Oracle number.
- Action: Increase the input value(s) so that the result is in the range of Oracle number.
- ORA-22055: unknown sign flag value [string]
- Cause: Signed flag used is not OCI_NUMBER_SIGNED or OCI_NUMBER_UNSIGNED.
- Action: Use either OCI_NUMBER_SIGNED or OCI_NUMBER_UNSIGNED as sign flag.
- ORA-22056: value [string] is divided by zero
- Cause: Given value is divied by zero.
- Action: Modify divisor value to be non-zero.
- ORA-22057: bad integer length [string]
- Cause: The length of the integer (ie number of bytes) to be converted to or from an Oracle number is invalid.
- Action: Use integer length 1, 2, 4 or 8 bytes only.
- ORA-22059: buffer size [string] is too small – [string] is needed
- Cause: The buffer to hold the resulting text string is too small.
- Action: Provide a buffer of the required size.
- ORA-22060: argument [string] is an invalid or uninitialized number
- Cause: An invalid or uninitialized number is passed in.
- Action: Use a valid number. To initialize number call OCINumberSetZero().
- ORA-22061: invalid format text [string]
- Cause: The numeric format string for converting characters to or from an Oracle number is invalid.
- Action: Use valid format string as documented in OCI Programmer’s Guide.
- ORA-22062: invalid input string [string]
- Cause: The text string for converting to numbers is invalid.
- Action: Use a valid input string as documented in OCI Programmer’s Guide.
- ORA-22063: reading negative value [string] as unsigned
- Cause: Attempt to convert a negative number to an unsigned integer.
- Action: Use the sign flag ORLTSB to convert a signed number.
- ORA-22064: invalid NLS parameter string [string]
- Cause: The NLS parameter string for converting characters to or from an Oracle number is invalid.
- Action: Use valid format string as documented in OCI Programmer’s Guide.
- ORA-22065: number to text translation for the given format causes overflow
- Cause: Rounding done due to the given string format causes overflow.
- Action: Change the string format such that overflow does not occur.
- ORA-22130: buffer size [string] is less than the required size [string]
- Cause: The size of the buffer into which the hexadecimal REF string is to be written is too small.
- Action: Provide a buffer of the required size.
- ORA-22131: hexadecimal string length is zero
- Cause: The given hexadecimal string length must be greater than zero.
- Action: Specify a length greater than zero.
- ORA-22132: hexadecimal string does not correspond to a valid REF
- Cause: The given hexadecimal string is invalid.
- Action: Provide a valid hexadecimal string which was previously returned by a call to OCIRefToHex().
- ORA-22140: given size [string] must be in the range of 0 to [string]
- Cause: The given resize size is invalid.
- Action: Ensure that the given size is in the required range.
- ORA-22141: given size [string] must be even in UTF-16 environment
- Cause: The given resize size is odd. In a UTF-16 environment, all characters are 2 bytes in length.
- Action: Ensure that the given size is even.
- ORA-22150: variable-length array has not been initialized
- Cause: An un-initialized variable-length array is being operated upon.
- Action: Initialize the variable-length array prior to calling this function.
- ORA-22151: cannot resize non-zero variable-length array to zero elements
- Cause: Trying to resize a non-zero variable-length array to 0 elements.
- Action: Specify a non-zero size.
- ORA-22152: destination variable-length array is not initialized
- Cause: The variable-length array on the right-hand-side of an assignment or the destination array of an append is not initialized.
- Action: Initialize the destination variable-length array prior to calling this function.
- ORA-22153: source variable-length array is not initialized
- Cause: The variable-length array on the left-hand-side of an assignment or the source array of an append is not initialized.
- Action: Initialize the destination variable-length array prior to calling this function.
- ORA-22160: element at index [string] does not exist
- Cause: Collection element at the given index does not exist.
- Action: Specify the index of an element which exists.
- ORA-22161: type code [string] is not valid
- Cause: Given type code is not valid.
- Action: Use one of the typecodes enumerated in OCITypeCode.
- ORA-22162: element at index [string] has been previously deleted
- Cause: Trying to delete a non-existent collection element.
- Action: Check for the existence of the element prior to calling this function.
- ORA-22163: left hand and right hand side collections are not of same type
- Cause: Left hand and right side collections are not of same type.
- Action: Ensure that the same collection type is passed for both left hand and right hand side of this function.
- ORA-22164: delete element operation is not allowed for variable-length array
- Cause: Trying to delete an element of a variable-length array.
- Action: Ensure that the collection is not a variable-length array prior to calling this function.
- ORA-22165: given index [string] must be in the range of [string] to [string]
- Cause: Given index is not in the required range.
- Action: Ensure that the given index is in the required range.
- ORA-22166: collection is empty
- Cause: Given collection is empty.
- Action: Test if collection is empty prior to invoking this function.
- ORA-22167: given trim size [string] must be less than or equal to [string]
- Cause: Given trim size is greater than the current collection size.
- Action: Ensure that the given size is less than or equal to the collection size prior to calling this function.
- ORA-22275: invalid LOB locator specified
- Cause: There are several causes: (1) the LOB locator was never initialized; (2) the locator is for a BFILE and the routine expects a BLOB/CLOB/NCLOB locator; (3) the locator is for a BLOB/CLOB/NCLOB and the routine expects a BFILE locator; (4) trying to update the LOB in a trigger body — LOBs in trigger bodies are read only; (5) the locator is for a BFILE/BLOB and the routine expects a CLOB/NCLOB locator; (6) the locator is for a CLOB/NCLOB and the routine expects a BFILE/BLOB locator;
- Action: For (1), initialize the LOB locator by selecting into the locator variable or by setting the LOB locator to empty. For (2),(3), (5) and (6)pass the correct type of locator into the routine. For (4), remove the trigger body code that updates the LOB value.
- ORA-22276: invalid locator for LOB buffering
- Cause: There are several causes: (1) the locator was never enabled for buffering (2) it is not an updated locator but is being used for a write/flush operation
- Action: For (1) enable the locator for buffering; (2) ensure that only an updated locator is used for a LOB update operation
- ORA-22277: cannot use two different locators to modify the same LOB
- Cause: LOB buffering is enabled and an attempt was made to modify the LOB using two different LOB locators.
- Action: When using LOB buffering, modify the LOB through one LOB locator only.
- ORA-22278: must update the LOB only through the LOB buffers
- Cause: LOB buffering is enabled for this LOB and there are buffers for this LOB in the buffer pool. Thus, updating the LOB through means other than the LOB buffers is not allowed.
- Action: Update the LOB through the LOB buffers using the locator that has LOB buffering enabled. If this operation is required, buffers associated with this LOB should either be flushed as necessary or buffering should be disabled. Once this is done, reissue the command.
- ORA-22279: cannot perform operation with LOB buffering enabled
- Cause: The operation attempted is not allowed when LOB buffering is enabled.
- Action: If the operation is required, LOB buffering should not be used. In this case, flush buffers associated with the input LOB locator as necessary, disable buffering on the input LOB locator and reissue the command.
- ORA-22280: no more buffers available for operation
- Cause: There are two causes: (1) All buffers in the buffer pool have been used up by previous operations (2) Attempt to flush a LOB without any previous buffered update operations.
- Action: For (1), flush the LOB(s) through the locator that is being used to update the LOB. For (2), write to the LOB through a locator enabled for buffering before attempting to flush buffers.
- ORA-22281: cannot perform operation with an updated locator
- Cause: The input locator has buffering enabled and was used to update the LOB value through the LOB buffering subsystem. The modified buffer has not been flushed since the write that was performed by the the input locator; thus, the input locator is considered an updated locator. Updated locators cannot be the source of a copy operation. Only one locator per LOB may be used to modify the LOB value through the LOB buffering subsystem.
- Action: Depending on whether the modifications made through the input locator to the LOB buffering subsystem should be written to the server, either flush the buffer to write the modifications, or, disable buffering on the locator to discard the modifications. Then, reissue the command.
- ORA-22282: non-contiguous append to a buffering enabled LOB not allowed
- Cause: The buffered write operation has an input offset value more than one byte or character past the end of the LOB.
- Action: Specify an input offset value which is exactly one character or byte greater than the length of the LOB that you are attempting to update through a buffered write operation.
- ORA-22283: filename contains characters that refer to parent directory
- Cause: Filename contains a path “../” which references a parent directory
- Action: Ensure that the filename does not contain characters which reference a parent directory.
- ORA-22284: duplicate LONG binds are not supported
- Cause: LOB access layer could not handle duplicate LONG binds.
- Action: Provide distinct LONG or VARCHAR binds.
- ORA-22285: non-existent directory or file for string operation
- Cause: Attempted to access a directory that does not exist, or attempted to access a file in a directory that does not exist.
- Action: Ensure that a system object corresponding to the specified directory exists in the database dictionary, or make sure the name is correct.
- ORA-22286: insufficient privileges on file or directory to perform string operation
- Cause: The user does not have the necessary access privileges on the directory alias and/or the file for the operation.
- Action: Ask the database/system administrator to grant the required privileges on the directory alias and/or the file.
- ORA-22287: invalid or modified directory occurred during string operation
- Cause: The directory alias used for the current operation is not valid if being accessed for the first time, or has been modified by the DBA since the last access.
- Action: If you are accessing this directory for the first time, provide a valid directory name. If you have been already successful in opening a file under this directory before this error occured, then close the file and retry the operation with a valid directory alias as modified by your DBA. Oracle recommends that directories should be modified only during quiescent periods.
- ORA-22288: file or LOB operation string failed string
- Cause: The operation attempted on the file or LOB failed.
- Action: See the next error message in the error stack for more detailed information. Also, verify that the file or LOB exists and that the necessary privileges are set for the specified operation. If the error still persists, report the error to the DBA.
- ORA-22289: cannot perform string operation on an unopened file or LOB
- Cause: The file or LOB is not open for the required operation to be performed.
- Action: Precede the current operation with a successful open operation on the file or LOB.
- ORA-22290: operation would exceed the maximum number of opened files or LOBs
- Cause: The number of open files or LOBs has reached the maximum limit.
- Action: Close some of the opened files or LOBs and retry the operation.
- ORA-22291: Open LOBs exist at transaction commit time
- Cause: An attempt was made to commit a transaction with open LOBs at transaction commit time.
- Action: Close the LOBs before committing the transaction.
- ORA-22292: Cannot open a LOB in read-write mode without a transaction
- Cause: An attempt was made to open a LOB in read-write mode before a transaction was started.
- Action: Start a transaction before opening the LOB in read-write mode. Ways to start a transaction include issuing a SQL DML or SELECT FOR UPDATE command. Opening hte LOB in read-only mode does not require a transaction.
- ORA-22293: LOB already opened in the same transaction
- Cause: An attempt was made to open a LOB that already is open in this transaction.
- Action: Close the LOB before attempting to re-open it.
- ORA-22294: cannot update a LOB opened in read-only mode
- Cause: An attempt was made to write to or update a LOB opened in read-only mode.
- Action: Close the LOB and re-open it in read-write mode before attempting to write to or update the LOB.
- ORA-22295: cannot bind more than 4000 bytes data to LOB and LONG columns in 1 statement
- Cause: An attempt was made to bind data more than 4000 bytes of data to both LOB and LONG columns in the same insert or update statement. You can bind more than 4000 bytes of data to either a LONG column or one or more LOB columns but not both.
- Action: Bind more than 4000 bytes of data to either the LONG column or one or more LOB columns but not both.
- ORA-22296: invalid ALTER TABLE option for conversion of LONG datatype to LOB
- Cause: An attempt was made to specify ALTER TABLE options which are disallowed during conversion of LONG datatype to LOB. The only ALTER TABLE options allowed during conversion of LONG datatype to LOB are the default clause and LOB storage clause for the column being converted to LOB.
- Action: Remove the disallowed options.
- ORA-22297: warning: Open LOBs exist at transaction commit time
- Cause: An attempt was made to commit a transaction with open LOBs at transaction commit time.
- Action: This is just a warning. The transaction was commited successfully, but any domain or functional indexes on the open LOBs were not updated. You may want to rebuild those indexes.
- ORA-22298: length of directory alias name or file name too long
- Cause: The length of directory alias name or file name given for a BFILE is too long.
- Action: Use a shorter alias or file name.