Oracle7 Server Messages
01400-01489: SQL Execution
This section lists messages generated during SQL execution.
ORA-01400 primary key or mandatory (NOT NULL) column is missing or NULL
during insert
Cause: | When inserting or updating rows, a value for a column defined as NOT NULL was not specified. | |
Action: | Specify a value for each NOT NULL column or modify the table definition to allow NULL values in columns now defined as NOT NULL. | |
ORA-01401 inserted value too large for column
Cause: | The value entered is larger than the maximum width defined for the column. | |
Action: | Enter a value smaller than the column width or use the MODIFY option with ALTER TABLE to expand the column width. | |
ORA-01402 view WITH CHECK OPTION where-clause violation
Cause: | An INSERT or UPDATE statement was attempted on a view created with the CHECK OPTION. This would have resulted in the creation of a row that would not satisfy the view's WHERE clause. | |
Action: | Examine the view's WHERE clause in the dictionary table VIEWS. If the current view does not have the CHECK OPTION, then its FROM clause must reference a second view that is defined using the CHECK OPTION. The second view's WHERE clause must also be satisfied by any INSERT or UPDATE statements. To insert the row, it may be necessary to insert it directly into the underlying table, rather than through the view. | |
ORA-01403 no data found
Cause: | In a host language program, all records have been fetched. The return code from the fetch was +4, indicating that all records have been returned from the SQL query. | |
Action: | Terminate processing for the SELECT statement. | |
ORA-01404 ALTER COLUMN will make a concatenated index too large
Cause: | Increasing the length of a column would cause the combined length of the columns specified in a previous CREATE INDEX statement to exceed the maximum index length (255). The total index length is computed as the sum of the width of all indexed columns plus the number of indexed columns. Date fields are calculated as a length of 7, character fields are calculated at their defined width, and numeric fields are length 22. | |
Action: | The only way to alter the column is to drop the affected index. The index cannot be recreated if to do so would exceed the maximum index width. | |
ORA-01405 fetched column value is NULL
Cause: | The INTO clause of a FETCH operation contained a NULL value, and no indicator was used. The column buffer in the program remained unchanged, and the cursor return code was +2. This is an error unless you are running Oracle7 with DBMS=6, emulating version 6, in which case it is only a warning. | |
Action: | You may do any of the following: | |
- Use the NVL function to convert the retrieved NULL to another value, such as zero or blank. This is the simplest solution.
- Use an indicator to record the presence of the NULL. You probably should use this option when you want a specific action to be taken when a NULL arises.
- Revise the cursor definition so that no columns possibly containing NULL values are retrieved.
ORA-01406 fetched column value was truncated
Cause: | In a host language program, a FETCH operation was forced to truncate a character string. The program buffer area for this column was not large enough to contain the entire string. The cursor return code from the fetch was +3. | |
Action: | Increase the column buffer area to hold the largest column value or perform other appropriate processing. | |
ORA-01407 cannot update mandatory NOT NULL column to NULL
Cause: | An attempt was made to update data in a NOT NULL column to a
NULL value. | |
Action: | Specify a value for the column or modify the table definition to accept NULL values in that column. | |
ORA-01408 such column list already indexed
Cause: | A CREATE INDEX statement specified a column that is already indexed. A single column may be indexed only once. Additional indexes may be created on the column if it is used as a portion of a concatenated index, that is, if the index consists of multiple columns. | |
Action: | Do not attempt to re-index the column, as it is unnecessary. To create a concatenated key, specify one or more additional columns in the CREATE INDEX statement. | |
ORA-01409 NOSORT option may not be used; rows are not in ascending order
Cause: | Creation of index with NOSORT option when rows were not ascending. The NOSORT option may only be used for indexes on groups of rows that already are in ascending order. | |
For non-unique indexes the ROWID is considered part of the index key. This means that two rows that appear to be stored in ascending order may not be. If you create an index NOSORT, and two of the rows in the table have the same index values, but get split across two extents, the data block address of the first block in the second extent can be less than the data block address of the last block in the first extent. If these addresses are not in ascending order, the ROWIDs are not either. Since these ROWIDs are considered part of the index key, the index key is not in ascending order, and the create index NOSORT fails.
Action: | Create the index without the NOSORT option or ensure that the table is stored in one extent. | |
ORA-01410 invalid ROWID
Cause: | A ROWID was entered incorrectly. ROWIDs must be entered as formatted hexadecimal strings using only numbers and the characters A through F.
A typical ROWID format is '000001F8.0001.0006'. | |
Action: | Check the format, then enter the ROWID using the correct format. ROWID format: block id, row in block, file id. | |
ORA-01411 cannot store the length of column in the indicator
Cause: | Oracle tried to fetch a column more than 64K long and could not store the length of the column in the given indicator size of 2 bytes. | |
Action: | Use the new bind type with callbacks to fetch the long column. | |
ORA-01412 zero length not allowed for this datatype
Cause: | The length for datatype 97 is 0. | |
Action: | Specify the correct length for the datatype. | |
ORA-01413 illegal value in packed decimal number buffer
Cause: | The user buffer bound by the user as a packed decimal number contained an illegal value. | |
Action: | Use a legal value. | |
ORA-01414 invalid array length when trying to bind array
Cause: | An attempt was made to bind an array without either a current array length pointer or a zero maximum array length. | |
Action: | Specify a valid length. | |
ORA-01416 two tables cannot be outer-joined to each other
Cause: | Two tables in a join operation specified an outer join with respect to each other. If an outer join is specified on one of the tables in a join condition, it may not be specified on the other table. | |
Action: | Remove the outer join specification (+) from one of the tables, then retry
the operation. | |
ORA-01417 a table may be outer joined to at most one other table
Cause: | A table in a join operation specified an outer join to more than one other table. A table may specify an outer join to only one other table. | |
Action: | Specify only one outer join (+) to this table, then retry the operation. | |
ORA-01418 specified index does not exist
Cause: | An ALTER INDEX, DROP INDEX, or VALIDATE INDEX statement specified the name of an index that does not exist. Only existing indexes can be altered, dropped, or validated. Existing indexes may be listed by querying the
data dictionary. | |
Action: | Specify the name of an existing index in the ALTER INDEX, DROP INDEX, or VALIDATE INDEX statement. | |
ORA-01422 exact fetch returns more than requested number of rows
Cause: | More rows were returned from an exact fetch than specified. | |
Action: | Rewrite the query to return fewer rows or specify more rows in the exact fetch. | |
ORA-01423 error encountered while checking for extra rows in exact fetch
Cause: | An error was encountered during the execution of an exact fetch. This message will be followed by more descriptive messages. | |
Action: | See the accompanying messages and take appropriate action. | |
ORA-01424 missing or illegal character following the escape character
Cause: | The character following the escape character in LIKE pattern is missing or not one of the wildcard characters '%' or '_'. | |
Action: | Remove the escape character or specify the missing character. | |
ORA-01425 escape character must be character string of length 1
Cause: | Given escape character for LIKE is not a character string of length 1. | |
Action: | Change it to a character string of length 1. | |
ORA-01426 numeric overflow
Cause: | Evaluation of a value expression has caused an overflow or possibly
an underflow. | |
Action: | Rewrite the expression as a series of expressions with fewer operands than the 'overloaded' expression. | |
ORA-01427 single-row subquery returns more than one row
Cause: | The outer query must use one of the keywords ANY, ALL, IN, or NOT IN to specify values to compare because the subquery returned more than one row. | |
Action: | Use ANY, ALL, IN, or NOT IN to specify which values to compare or reword the query so only one row is retrieved. | |
ORA-01428 argument num is out of range
Cause: | An illegal value for a mathematical function argument was specified.
For example | |
SELECT SQRT(-1) "Square Root" FROM DUAL;
ORA-01429 a date in binary format has an out of range value
Cause: | The date, in binary format, for an external type DATE was out of range for one or more of the seven possible bytes. | |
Action: | Select values for each of the seven bytes that conform to the required date specification or use the TO_DATE function with character data. | |
ORA-01430 column being added already exists in table
Cause: | An ALTER TABLE ADD statement specified the name of a column that is already in the table. All column names must be unique within a table. | |
Action: | Specify a unique name for the new column, then re-execute the statement. | |
ORA-01431 internal inconsistency in GRANT command
Cause: | An internal error occurred while attempting to execute a GRANT statement. | |
Action: | Contact customer support. | |
ORA-01432 public synonym to be dropped does not exist
Cause: | The synonym specified in DROP PUBLIC SYNONYM is not a valid public synonym. It may be a private synonym. | |
Action: | Correct the synonym name or use DROP SYNONYM if the synonym is
not public. | |
ORA-01433 synonym to be created is already defined
Cause: | A CREATE SYNONYM statement specified a synonym name that is the same as an existing synonym, table, view, or cluster. Synonyms may not have the same name as any other synonym, table, view, or cluster available to the user creating the synonym. | |
Action: | Specify a unique name for the synonym, then re-execute the statement. | |
ORA-01434 private synonym to be dropped does not exist
Cause: | A DROP SYNONYM statement specified a synonym that does not exist. Existing synonym names may be listed by querying the data dictionary. | |
Action: | Specify the name of an existing synonym in the DROP SYNONYM statement. | |
ORA-01435 user does not exist
Cause: | This message is caused by any reference to a non-existent user. For example, it occurs if a SELECT, GRANT, or REVOKE statement specifies a username that does not exist. Only a GRANT CONNECT statement may specify a new username. All other GRANT and REVOKE statements must specify existing usernames. If specified in a SELECT statement, usernames must already exist. | |
Action: | Specify only existing usernames in the SELECT, GRANT, or REVOKE statement or ask the database administrator to define the new username. | |
ORA-01436 CONNECT BY loop in user data
Cause: | The condition specified in a CONNECT BY clause caused a loop in the query, where the next record to be selected is a descendent of itself. When this happens, there can be no end to the query. | |
Action: | Check the CONNECT BY clause and remove the circular reference. | |
ORA-01437 cannot have join with CONNECT BY
Cause: | A join operation was specified with a CONNECT BY clause. If a CONNECT BY clause is used in a SELECT statement for a tree-structured query, only one table may be referenced in the query. | |
Action: | Remove either the CONNECT BY clause or the join operation from the
SQL statement. | |
ORA-01438 value larger than specified precision allows for this column
Cause: | When inserting or updating records, a numeric value was entered that exceeded the precision defined for the column. | |
Action: | Enter a value that complies with the numeric column's precision, or use the MODIFY option with the ALTER TABLE command to expand the precision. | |
ORA-01439 column to be modified must be empty to change datatype
Cause: | An ALTER TABLE MODIFY statement attempted to change the datatype of a column containing data. A column whose datatype is to be altered must contain only NULL values. | |
Action: | To alter the datatype, first set all values in the column to NULL. | |
ORA-01440 column to be modified must be empty to decrease precision or scale
Cause: | An ALTER TABLE MODIFY statement attempted to decrease the scale or precision of a numeric column containing data. In order to decrease either of these values, the column must contain only NULL values. An attempt to increase the scale without also increasing the precision will also cause
this message. | |
Action: | Set all values in the column to NULL before decreasing the numeric precision or scale. If attempting to increase the scale, increase the precision in accordance with the scale or set all values in the column to NULL first. | |
ORA-01441 column to be modified must be empty to decrease column length
Cause: | An ALTER TABLE MODIFY statement attempted to decrease the size of a character field containing data. A column whose maximum size is to be decreased must contain only NULL values. | |
Action: | Set all values in column to NULL before decreasing the maximum size. | |
ORA-01442 column to be modified to NOT NULL is already NOT NULL
Cause: | An ALTER TABLE MODIFY statement attempted to change a column specification unnecessarily, from NOT NULL to NOT NULL. | |
Action: | No action required. | |
ORA-01443 internal inconsistency; illegal datatype in resultant view column
Cause: | An internal error occurred in referencing a view. | |
Action: | Contact customer support. | |
ORA-01444 internal inconsistency; internal datatype maps to invalid external type
Cause: | This is an internal error message not normally issued. | |
Action: | Contact customer support. | |
ORA-01445 cannot select ROWID from a join view without a key-preserved table
Cause: | A SELECT statement attempted to select ROWIDs from a view derived from a join operation. Because the rows selected in the view do not correspond to underlying physical records, no ROWIDs can be returned. | |
Action: | Remove ROWID from the view selection clause, then re-execute the statement. | |
ORA-01446 cannot select ROWID from view with DISTINCT, GROUP BY, etc.
Cause: | A SELECT statement attempted to select ROWIDs from a view containing columns derived from functions or expressions. Because the rows selected in the view do not correspond to underlying physical records, no ROWIDs can
be returned. | |
Action: | Remove ROWID from the view selection clause, then re-execute the statement. | |
ORA-01447 ALTER TABLE does not operate on clustered columns
Cause: | An ALTER TABLE MODIFY statement specified a column used to cluster the table. Clustered columns may not be altered. | |
Action: | To alter the column, first recreate the table in non-clustered form. The column's size can be increased at the same time. | |
ORA-01448 index must be dropped before changing to desired type
Cause: | An ALTER TABLE MODIFY statement attempted to change an indexed character column to a LONG column. Columns with the datatype LONG may not be indexed, so the index must be dropped before the modification. | |
Action: | Drop all indexes referencing the column before changing its datatype to LONG. | |
ORA-01449 column contains NULL values; cannot alter to NOT NULL
Cause: | An ALTER TABLE MODIFY statement attempted to change the definition of a column containing NULL values to NOT NULL. The column may not currently contain any NULL values if it is to be altered to NOT NULL. | |
Action: | Set all NULL values in the column to values other than NULL before ALTERING the column to NOT NULL. | |
ORA-01450 maximum key length exceeded
Cause: | The combined length of all the columns specified in a CREATE INDEX statement exceeded the maximum index length. The maximum index length varies by operating system. The total index length is computed as the sum of the width of all indexed columns plus the number of indexed columns. Date fields have a length of 7, character fields have their defined length, and numeric fields have a length of 22. Numeric length = (precision/2) + 1. If negative, add +1. | |
ORA-01451 column to be modified to NULL cannot be modified to NULL
Cause: | The column may already allow NULL values, the NOT NULL constraint is
part of a primary key or check constraint, or an ALTER TABLE MODIFY statement attempted to change a column specification unnecessarily, from NULL to NULL. | |
Action: | If a primary key or check constraint is enforcing the NOT NULL constraint, then drop that constraint. | |
ORA-01452 cannot CREATE UNIQUE INDEX; duplicate keys found
Cause: | A CREATE UNIQUE INDEX statement specified one or more columns that currently contain duplicate values. All values in the indexed columns must be unique by row to create a UNIQUE INDEX. | |
Action: | If the entries need not be unique, remove the keyword UNIQUE from the CREATE INDEX statement, then re-execute the statement. If the entries must be unique, as in a primary key, then remove duplicate values before creating the UNIQUE index. | |
ORA-01453 SET TRANSACTION must be first statement of transaction
Cause: | A transaction was not processed properly because the SET TRANSACTION statement was not the first statement. | |
Action: | Commit or roll back the current transaction before using the statement
SET TRANSACTION. | |
ORA-01454 cannot convert column into numeric datatype
Cause: | A non-numeric value could not be converted into a number value. | |
Action: | Check the value to make sure it contains only numbers, a sign, a decimal point, and the character "E" or "e", then retry the operation. | |
ORA-01455 converting column overflows integer datatype
Cause: | The converted form of the specified expression was too large for the
specified datatype. | |
Action: | Define a larger datatype or correct the data. | |
ORA-01456 may not perform insert/delete/update operation inside a READ
ONLY transaction
Cause: | A non-DDL INSERT/DELETE/UPDATE or SELECT FOR UPDATE operation was attempted. | |
Action: | Commit or roll back the current transaction, then retry the operation. | |
ORA-01457 converting column overflows decimal datatype
Cause: | The converted form of the specified expression was too large for the specified type. The problem also occurs in COBOL programs when using COMP-3 in the picture clause, which is acceptable to the Pro*COBOL Precompiler and to COBOL but results in this error. | |
Action: | Define a larger datatype or correct the data. | |
ORA-01458 invalid length inside variable character string
Cause: | An attempt was made to bind or define a variable character string with a buffer length less than the two-byte minimum requirement. | |
Action: | Increase the buffer size or use a different type. | |
ORA-01459 invalid length for variable character string
Cause: | The buffer length was less than the minimum required (two bytes) or greater than its length at bind time minus two bytes. | |
Action: | None. Buffer length is set correctly by Oracle at fetch time. | |
ORA-01460 unimplemented or unreasonable conversion requested
Cause: | The requested format conversion is not supported. | |
Action: | Remove the requested conversion from the SQL statement. Check the syntax for the TO_CHAR, TO_DATE, and TO_NUMBER functions to see which conversions are supported. | |
ORA-01461 can bind a LONG value only for insert into a LONG column
Cause: | An attempt was made to insert a value from a LONG datatype into another datatype. This is not allowed. | |
Action: | Do not try to insert LONG datatypes into other types of columns. | |
ORA-01462 cannot insert string literals longer than 2000 characters
Cause: | The longest literal supported by Oracle consists of 2000 characters. | |
Action: | Reduce the number of characters in the literal to 2000 characters or fewer or use the VARCHAR2 or LONG datatype to insert strings exceeding 2000 characters. | |
ORA-01463 cannot modify column datatype with current constraints
Cause: | An attempt was made to modify the datatype of a column that has referential constraints or that has check constraints that only allow changing the datatype from CHAR to VARCHAR or vice versa. | |
Action: | Remove the constraint(s) or do not perform the offending operation. | |
ORA-01464 circular grant (granting to grant ancestor) of table or view
Cause: | The user in the TO clause of the GRANT statement has already been GRANTed privileges on this table. | |
Action: | Do not GRANT privileges on a table to the user who originally GRANTed privileges on that table. The statement in error is probably unnecessary. | |
ORA-01465 invalid hex number
Cause: | In an UPDATE statement following a SELECT FOR UPDATE, part of the ROWID contains invalid characters. ROWID must be expressed in the proper and expected format for ROWID and within quotes. | |
Action: | Enter the ROWID just as it was returned in the SELECT FOR UPDATE. | |
ORA-01466 unable to read data -- object definition has changed
Cause: | This is a time-based read consistency error for a database object, such as a table or index. Either of the following may have happened: | |
- The query was parsed and executed with a snapshot older than the time the object was changed.
- The creation time-stamp of the object is greater than the current system time. This happens, for example, when the system time is set to a time earlier than the creation time of the object.
- an old snapshot, then commit or rollback the transaction and
resume work.
- a creation time-stamp in the future, ensure the system time is
set correctly.
If the object creation time-stamp is still greater than the system time, then export the object's data, drop the object, recreate the object so it has a new creation time-stamp, import the object's data, and resume work.
ORA-01467 sort key too long
Cause: | A DISTINCT, GROUP BY, ORDER BY, or SET operation requires a sort key longer than that supported by Oracle. Either too many columns or too many group functions were specified in the SELECT statement. | |
Action: | Reduce the number of columns or group functions involved in the operation. | |
ORA-01468 a predicate may reference only one outer-joined table
Cause: | A predicate in the WHERE clause has two columns from different tables
with "(+)". | |
Action: | Change the WHERE clause so that each predicate has a maximum of one outer-join table. | |
ORA-01469 PRIOR can only be followed by a column name
Cause: | An invalid column name was specified after the PRIOR keyword. | |
Action: | Check syntax, spelling, use a valid column name, and try again. | |
ORA-01471 cannot create a synonym with the same name as object
Cause: | An attempt was made to create a private synonym with the same name as the object to which it refers. This error typically occurs when a user attempts to create a private synonym with the same name as one of their objects. | |
Action: | Choose a different synonym name or create the synonym under a
different username. | |
ORA-01472 cannot use CONNECT BY on view with DISTINCT, GROUP BY, etc.
Cause: | CONNECT BY cannot be used on a view where there is not a correspondence between output rows and rows of the underlying table. | |
Action: | Remove the DISTINCT or GROUP BY from the view or move the CONNECT BY clause into the view. | |
ORA-01473 cannot have subqueries in CONNECT BY clause
Cause: | Subqueries cannot be used in a CONNECT BY clause. | |
Action: | Remove the subquery or move it to the WHERE clause. | |
ORA-01474 cannot have START WITH or PRIOR without CONNECT BY
Cause: | START WITH and PRIOR are meaningful only in connection with
CONNECT BY. | |
Action: | Check the syntax for the SQL statement and add a CONNECT BY clause,
if necessary. | |
ORA-01475 must reparse cursor to change bind variable datatype
Cause: | After executing a statement, an attempt was made to rebind a bind variable with a datatype different from that of the original bind. | |
Action: | Reparse the cursor before rebinding with a different datatype. | |
ORA-01476 divisor is equal to zero
Cause: | An expression attempted to divide by zero. | |
Action: | Correct the expression, then retry the operation. | |
ORA-01477 user data area descriptor is too large
Cause: | This is an internal error message not normally issued. | |
Action: | Contact customer support. | |
ORA-01478 array bind may not include any LONG columns
Cause: | An attempt was made to use array bind on a column whose maximum size is greater than 2000 bytes. This is not permitted. | |
Action: | Do not use array bind for a LONG column. Use an ordinary bind instead. | |
ORA-01479 last character in the buffer is not Null
Cause: | A bind variable of type 97 does not contain NULL at the last position. | |
Action: | Make the last character a NULL. | |
ORA-01480 trailing null missing from STR bind value
Cause: | A bind variable specified as type SQLT_STR is not terminated with an ASCII NULL (0) character. | |
Action: | Check maximum lengths and contents of string bind variables. | |
ORA-01481 invalid number format model
Cause: | An invalid format parameter was used with the TO_CHAR or
TO_NUMBER function. | |
Action: | Correct the syntax, then retry the operation. | |
ORA-01482 unsupported character set
Cause: | The second or third parameter to the CONVERT function is not a supported character set. | |
Action: | Use one of the supported character sets. | |
ORA-01483 invalid length for DATE or NUMBER bind variable
Cause: | A bind variable of type DATE or NUMBER is too long. | |
Action: | Check your Oracle7 operating system-specific documentation for the maximum allowable length. | |
ORA-01484 arrays can only be bound to PL/SQL statements
Cause: | You tried to bind an array to a non-PL/SQL statement. | |
Action: | Rewrite the offending code being careful to bind arrays only to
PL/SQL statements. | |
ORA-01485 compile bind length different from execute bind length
Cause: | You bound a buffer of type DTYVCS (VARCHAR with the two byte length in front) and at execute time the length in the first two bytes is more than the maximum buffer length, given in the bind call. The number of elements in the array and the current number of elements in the array cannot be more than the maximum size of the array. | |
Action: | Ensure that the buffer size is sufficiently large to contain the array plus two bytes for the buffer length. | |
ORA-01486 size of array element is too large
Cause: | An attempt was made to bind a data value that was either too large for the datatype, for example, NUMBER, or was greater than 2000 bytes, for example, VARCHAR or LONG. | |
Action: | Find a way to convert or truncate the data value so that its length is acceptable. | |
ORA-01487 packed decimal number too large for supplied buffer
Cause: | A conversion request cannot be performed because the buffer is too small to hold the result. | |
Action: | Increase the size of the buffer. | |
ORA-01488 invalid nibble or byte in the input data
Cause: | A conversion request cannot be performed because a digit was invalid. | |
Action: | Fix the number and retry. | |
ORA-01489 result of string concatenation is too long
Cause: | The result of a string concatenation was larger than the maximum length of a string (2000 characters). | |
Action: | Reduce the size of one or both of the strings to be concatenated. Make certain the total length of the concatenation result is less than 2000 characters. | |