Oracle8 Error Messages Release 8.0.4 A58312-01 |
|
This section lists messages generated during SQL execution.
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.
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.
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.
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.
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.
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:
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.
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:
Action: Retry the operation with a value other than NULL.
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.
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.
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.
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.
Cause: The length for datatype 97 is 0.
Action: Specify the correct length for the datatype.
Cause: The user buffer bound by the user as a packed decimal number contained an illegal value.
Action: Use a legal value.
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.
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.
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.
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.
Cause: An attempt was made to use an incorrect format.
Action: Inspect the format, correct it if necessary, then retry the operation.
Cause: An attempt was made to use an invalid format.
Action: Inspect the format, correct it if necessary, then retry the operation.
Cause: An attempt was made to use an invalid precision specifier.
Action: Inspect the precision specifier, correct it if necessary, then retry the operation.
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.
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.
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.
Cause: Given escape character for LIKE is not a character string of length 1.
Action: Change it to a character string of length 1.
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.
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.
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.
Cause: A data segment to store the overflow has not been defined.
Action: Add an overflow segment and retry the operation.
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.
Cause: An internal error occurred while attempting to execute a GRANT statement.
Action: Contact customer support.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Cause: An ALTER TABLE MODIFY statement attempted to change a column specification unnecessarily, from NOT NULL to NOT NULL.
Action: No action required.
Cause: An internal error occurred in referencing a view.
Action: Contact customer support.
Cause: This is an internal error message not normally issued.
Action: Contact customer support.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Cause: The converted form of the specified expression was too large for the specified datatype.
Action: Define a larger datatype or correct the data.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
Action: If the cause is:
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.
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.
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.
Cause: An invalid column name was specified after the PRIOR keyword.
Action: Check syntax, spelling, use a valid column name, and try again.
Cause: Constants of different types are specified in an in-list.
Action: Use constants of same type for in-lists.
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.
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.
Cause: Subqueries cannot be used in a CONNECT BY clause.
Action: Remove the subquery or move it to the WHERE clause.
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.
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.
Cause: An expression attempted to divide by zero.
Action: Correct the expression, then retry the operation.
Cause: This is an internal error message not normally issued.
Action: Contact customer support.
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.
Cause: A bind variable of type 97 does not contain NULL at the last position.
Action: Make the last character a NULL.
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.
Cause: An invalid format parameter was used with the TO_CHAR or TO_NUMBER function.
Action: Correct the syntax, then retry the operation.
Cause: The second or third parameter to the CONVERT function is not a supported character set.
Action: Use one of the supported character sets.
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.
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.
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.
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.
Cause: A conversion request cannot be performed because the buffer is too small to hold the result.
Action: Increase the size of the buffer.
Cause: A conversion request cannot be performed because a digit was invalid.
Action: Fix the number and retry.
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.