Oracle8 Error Messages Release 8.0.4 A58312-01 |
Library | Product | Contents | Index

## 01400-01489: SQL Execution Messages

This section lists messages generated during SQL execution.

##### ORA-01400: cannot insert NULL into ("USER"."TABLE"."COLUMN")

Cause: An attempt was made to insert a NULL into the column "USER"."TABLE"."COLUMN".

  For example, if you enter:

      connect scott/tiger

      create table a (a1 number not null);

      insert into a values (null);

  Oracle returns:

      ORA-01400 cannot insert NULL into ("SCOTT"."A"."A1") :  which means you
      cannot insert NULL into "SCOTT"."A"."A1".

Action: Retry the operation with a value other than 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 Oracle 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 ("USER"."TABLE"."COLUMN") to NULL

Cause: An attempt was made to update a table column "USER"."TABLE"."COLUMN" with a NULL value.

  For example, if you enter:

      connect scott/tiger

      update table a (a1 number not null);

      insert into a values (null);

  Oracle returns:

##### ORA-01407 cannot update ("SCOTT"."A"."A1") to NULL: which means you cannot update the column "SCOTT"."A"."A1" to NULL.

Action: Retry the operation with a value other than NULL.

##### 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-01419: datdts: illegal format code

Cause: An attempt was made to use an incorrect format.

Action: Inspect the format, correct it if necessary, then retry the operation.

##### ORA-01420: datstd: illegal format code

Cause: An attempt was made to use an invalid format.

Action: Inspect the format, correct it if necessary, then retry the operation.

##### ORA-01421: datrnd/dattrn: illegal precision specifier

Cause: An attempt was made to use an invalid precision specifier.

Action: Inspect the precision specifier, correct it if necessary, then retry the operation.

##### 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;

Action: See Oracle8 Server SQL Reference manual for valid input and ranges of the mathematical functions.

##### ORA-01429: Index-Organized Table: no data segment to store overflow row-pieces

Cause: A data segment to store the overflow has not been defined.

Action: Add an overflow segment and retry the operation.

##### 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.

Action: Select columns to be indexed so the total index length does not exceed the maximum index length for the operating system. See also your operating system-specific Oracle documentation.

##### 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-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.

Action: If the cause is:

- 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-01470: in-list iteration does not support mixed operators

Cause: Constants of different types are specified in an in-list.

Action: Use constants of same type for in-lists.

##### 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 Oracle 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.

Prev | Top | Next
| Copyright © 1997 Oracle Corporation. All Rights Reserved. |
Library | Product | Contents | Index