52 PLS-00049 to PLS-01918

PLS-00049: bad bind variable 'string'
Cause: The client (caller) of PL/SQL has parsed a bind variable that it has informed to be 'bad'.
Action: None
PLS-00102: parser stack overflow because nesting is too deep
Cause: The parser, which checks the syntax of PL/SQL statements, uses a data structure called a stack; the number of levels of nesting in the PL/SQL block exceeded the stack capacity.
Action: Reorganize the block structure to avoid nesting at too deep a level. For example, move the lowest-level sub-block to a higher level.
PLS-00103: string
Cause: This error message is from the parser. It found a token (language element) that is inappropriate in this context.
Action: Check previous tokens as well as the one given in the error message. The line and column numbers given in the error message refer to the end of the faulty language construct.
PLS-00104: empty argument list in call of procedure 'string' must be omitted
Cause: In a subprogram call, the name of the subprogram was followed by an empty parameter list. For example, procedure P was called as P(). This is not allowed.
Action: Remove the empty parameter list. In the example, change the procedure call to P.
PLS-00105: at most one forward declaration of type 'string' is permitted
Cause: More than one forward declaration of a type is redundant.
Action: Remove all but one forward declaration.
PLS-00108: declarative units must be a single variable declaration
Cause: While checking a declarative unit (a top-level declare block without the BEGIN...END), PL/SQL found that there was more than one item declared or that the item was not a variable declaration. A table is a common variable declaration at the unit level. To define a TABLE, compile a DECLARE compilation unit, but only one at a time is allowed.
Action: Declare variables in separate declarative units.
PLS-00109: unknown exception name 'string' in PRAGMA EXCEPTION_INIT
Cause: No declaration for the exception name referenced in an EXCEPTION_INIT pragma was found within the scope of the pragma.
Action: Make sure the pragma follows the exception declaration and is within the same scope.
PLS-00110: bind variable 'string' not allowed in this context
Cause: A bind variable, that is, an identifier prefixed with a colon, was found in an inappropriate context.
Action: Remove the colon or replace the bind variable with the appropriate object.
PLS-00111: end-of-file in comment
Cause: A Comment had a comment initiator (/*), but before the
Action: Remove the Comment initiator or add a comment terminator. The line and column numbers accompanying the error message refer to the beginning of the last legal token before the Comment initiator.
PLS-00112: end-of-line in quoted identifier
Cause: A quoted identifier had a beginning quote ("), but before the ending quote (") was found, an end-of-line marker was encountered.
Action: Remove the beginning quote or add the ending quote. The line and column numbers accompanying the error message refer to the beginning of the quoted identifier.
PLS-00113: END identifier 'string' must match 'string' at line string, column string
Cause: Following the keyword END, which terminates some language constructs (such as loops, blocks, functions, and procedures), you can optionally place the name of that construct. For example, at the end of the definition of loop L you might write END L. This error occurs when the optional name does not match the name given to the language construct. It is usually caused by a misspelled identifier or by faulty block structure.
Action: Make sure the spelling of the END identifier matches the name given to the language construct and that the block structure is correct.
PLS-00114: identifier 'string' too long
Cause: The name of a PL/SQL variable is longer than 30 characters. Legal identifiers (including quoted identifiers) have a maximum length of 30 characters. A string literal might have been mistakenly enclosed in double quotes instead of single quotes, in which case PL/SQL considers it a quoted identifier.
Action: Shorten the identifier.
PLS-00115: this PRAGMA must follow the declaration of 'string'
Cause: The pragma refers to a PL/SQL object that was not declared or is not within the scope of the reference. Identifiers must be declared before they are used in a pragma; forward references are not allowed.
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00116: Duplicate where-clause in table expression
Cause: Two or more WHERE clauses were found in a DELETE, SELECT, or UPDATE statement. The WHERE clause specifies a condition under which rows in a table are processed. The condition can contain several logical expressions connected by AND or OR, but a statement can contain only one WHERE clause.
Action: Remove one of the WHERE clauses and, if necessary, connect logical expressions by AND or OR
PLS-00117: Duplicate connect-by clause in table expression
Cause: Two or more CONNECT BY clauses were found in a SELECT statement. The CONNECT BY clause defines a relationship used to return rows in a hierarchical order. The relationship can contain two expressions separated by a relational operator (such as = or !=), but a statement can contain only one CONNECT BY clause.
Action: Remove one of the CONNECT BY clauses and, if necessary, separate expressions by a relational operator.
PLS-00118: Duplicate group-by clause in table expression
Cause: Two or more GROUP BY clauses were found in a SELECT statement. The GROUP BY clause lists column expressions used to form a summary row for each group of selected rows. The list can contain several column expressions separated by commas, but a statement can contain only one GROUP BY clause.
Action: Remove one of the GROUP BY clauses and, if necessary, separate column expressions by commas.
PLS-00119: Duplicate having-clause in table expression
Cause: Two or more HAVING clauses were found in a SELECT statement. The HAVING clause specifies a condition under which groups of rows (formed by the GROUP BY clause) are included in the result. The condition can include several logical expressions connected by AND or OR, but a statement can contain only one HAVING clause.
Action: Remove one of the HAVING clauses and, if necessary, connect logical expressions by AND or OR.
PLS-00120: inappropriate argument in OPEN statement
Cause: The asterisk (*) option was used in the argument list of a SQL group function other than COUNT. For example, the code might look like SELECT SUM(*) INTO emp_count FROM emp; -- should be COUNT(*) Only COUNT permits the use of the asterisk option, which returns the number of rows in a table.
Action: Remove the asterisk option from the argument list and replace it with an expression that refers to one or more database columns.
PLS-00122: string as separator is allowed only with specific built-in functions
Cause: A few built-in functions use keywords (instead of commas) as argument separators: Built-in function Argument separators --------------------------------------------- CHR, TRANSLATE USING CAST AS TRIM TRAILING, LEADING, BOTH, FROM A function different from one of these built-in functions is using a keyword as an argument separator.
Action: Correct the argument list or change the function name.
PLS-00123: program too large (string)
Cause: PL/SQL was designed primarily for robust transaction processing. One consequence of the special-purpose design is that the PL/SQL compiler imposes a limit on block size. The limit depends on the mix of statements in the PL/SQL block. Blocks that exceed the limit cause this error.
Action: The best solution is to modularize the program by defining subprograms, which can be stored in an Oracle database. Another solution is to break the program into two sub-blocks. Have the first block INSERT any data the second block needs into a temporary database table. Then, have the second block SELECT the data from the table.
PLS-00124: name of exception expected for first arg in exception_init pragma
Cause: The first argument passed to the EXCEPTION_INIT pragma was something other than an exception name. The first argument must be the name of a legally declared exception.
Action: Replace the first argument with the name of a legally declared exception.
PLS-00125: type name expected
Cause: When a constant or variable was declared, its datatype was not specified. For example, the code might look like pi CONSTANT := 3.14159; -- should be CONSTANT REAL := 3.14159 Every constant and variable must have a datatype, which specifies a storage format, constraints, and valid range of values.
Action: Supply the type name
PLS-00126: selector ALL is not allowed
Cause: The ALL shortcut for specifying system privileges or statement options was used in a SQL statement. PL/SQL does not support the ALL shortcut.
Action: Remove the ALL shortcut from the SQL statement.
PLS-00127: Pragma string is not a supported pragma
Cause: The named pragma (compiler directive) is not among those supported by PL/SQL. The pragma name might be misspelled, or the pragma syntax might be faulty.
Action: Check the spelling of the pragma name, and make sure the proper syntax was used.
PLS-00128: Illegal number of arguments for pragma string
Cause: The number of arguments (actual parameters) passed to the named pragma (compiler directive) is incorrect. A required argument was omitted from the argument list, or the pragma syntax is faulty (for example, a comma might be missing between two parameters).
Action: Supply the missing argument, or correct the faulty syntax.
PLS-00129: Pragma INTERFACE only supports C as its first argument
Cause: The first parameter passed to pragma INTERFACE specified a host language other than C. Currently, C is the only host language supported. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the first parameter, which should be C, and make sure the proper syntax was used.
PLS-00130: Pragma string expects 1st argument to be a procedure/function/package/cursor
Cause: The first argument (actual parameter) passed to the named pragma (compiler directive) was not the name of a subprogram, package, or cursor, as required. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the first parameter, and make sure the proper syntax was used.
PLS-00131: Pragma string expects 2nd argument to be a procedure/function
Cause: The second argument (actual parameter) passed to the named pragma (compiler directive) was not the name of a procedure or function, as required. The parameter cannot be a non-static method. The parameter might be misspelled or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the second parameter and make sure the proper syntax was used.
PLS-00132: Pragma string does not support string
Cause: One of the parameters passed to this pragma was not among the list of allowed values. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of all the parameters and make sure the proper syntax was used.
PLS-00133: Pragma string expects 1st argument to be an identifier or string-literal
Cause: The first argument (actual parameter) passed to the named pragma (compiler directive) was not an identifier or string literal, as required. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the first parameter, and make sure the proper syntax was used.
PLS-00134: Pragma string expects 2nd argument to be an identifier or string-literal
Cause: The second argument (actual parameter) passed to the named pragma (compiler directive) was not an identifier or string literal, as required. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the second parameter, and make sure the proper syntax was used.
PLS-00135: Pragma string expects 3rd argument to be an identifier, string or numeric literal
Cause: The fourth argument (actual parameter) passed to the named pragma (compiler directive) was not a numeric literal, as required. The parameter might be miscoded, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the coding of the fourth parameter, and make sure the proper syntax was used.
PLS-00138: Precision for a binary type must be one of 8, 16, or 32
Cause: Invalid precision was specified for a signed or unsigned binary type.
Action: Specify precision as one of 8, 16, or 32.
PLS-00139: duplicate external NAME specification in subprogram expression
Cause: The subprogram was found to have two external NAME specifications.
Action: Remove one of the external NAME specifications.
PLS-00140: duplicate external LIBRARY specification in subprogram expression
Cause: The subprogram was found to have two external LIBRARY specifications.
Action: Remove one of the external LIBRARY specifications.
PLS-00141: duplicate external PARAMETER STYLE specification in subprogram expression
Cause: The subprogram was found to have two external PARAMETER STYLE specifications.
Action: Remove one of the external PARAMETER STYLE specifications.
PLS-00142: duplicate external PARAMETER list specification in subprogram expression
Cause: The subprogram was found to have two external PARAMETER STYLE specifications.
Action: Remove one of the external PARAMETER STYLE specifications.
PLS-00143: duplicate external LANGUAGE specification in subprogram expression
Cause: The subprogram was found to have two external LANGUAGE specifications.
Action: Remove one of the external LANGUAGE specifications.
PLS-00144: duplicate external CALLING STANDARD specification in subprogram expression
Cause: The subprogram was found to have two external CALLING STANDARD specifications.
Action: Remove one of the external CALLING STANDARD specifications.
PLS-00145: duplicate external WITH CONTEXT specification in subprogram expression
Cause: The subprogram was found to have two external WITH CONTEXT specifications.
Action: Remove one of the external WITH CONTEXT specifications.
PLS-00146: duplicate external TRUSTED/UNTRUSTED specification in subprogram expression
Cause: The subprogram was found to have two external TRUSTED/UNTRUSTED specifications.
Action: Remove one of the external external TRUSTED/UNTRUSTED specifications.
PLS-00147: LIBRARY or ASSEMBLY file specification string is empty
Cause: A zero-length string was found for the LIBRARY or ASSEMBLY file specification.
Action: Specify a non-zero length string for the LIBRARY or ASSEMBLY file specification.
PLS-00148: Only 1 pragma of this type is allowed per subprogram
Cause: The subprogram was found to have two PRAGMA RESTRICT_REFERENCES.
Action: Remove one of the PRAGMA RESTRICT_REFERENCES.
PLS-00150: found: string but expected : INTEGER
Cause: This error happens in the creation of a pl/sql external type: [SIGNED | UNSIGNED] BINARY INTEGER (<precision>). It may be referenced only in a create type statement. Such types are non-queryable. Something other than 'INTEGER' was supplied.
Action: None
PLS-00151: Expression or Variable is an illegal type to PLS/QL: string
Cause: A type was used which does not belong PL/SQL. This type can only be referenced in CREATE TYPE statements, and is a non-queryable data type.
Action: None
PLS-00152: POINTER type may only reference an object type.
Cause: A POINTER type which does not belong to PL/SQL can only refer to an object type. This type can only be referenced in CREATE TYPE statements, and is a non-queryable data type.
Action: None
PLS-00153: A string type may only be used as an object type attribute.
Cause: A POINTER or [SIGNED/UNSIGNED] BINARY INTEGER can only be used as attributes of object types. These types can only be referenced in CREATE TYPE statements, and are non-queryable data types. One of these external PL/SQL types outside of an object type.
Action: None
PLS-00154: An object type may have only 1 MAP or 1 ORDER method.
Cause: More than one map or order function was declared. An object type can have only one map function or one order function, but not both.
Action: None
PLS-00155: Only a function may be a MAP, ORDER or CONSTRUCTOR method.
Cause: A procedure was declared as a MAP, ORDER or CONSTRUCTOR method. Only functions can be MAP, ORDER or CONSTRUCTOR methods.
Action: None
PLS-00156: Null constraints not supported for object attributes.
Cause: A null constraint was specified for an attribute in an object. This is not supported.
Action: Remove the constraint.
PLS-00157: AUTHID only allowed on schema-level programs
Cause: An AUTHID clause was specified for a subprogram inside a package or type. These clauses are only supported for top-level stored procedures, packages, and types.
Action: Remove the clause
PLS-00160: AUTHID must specify CURRENT_USER or DEFINER
Cause: The only two allowed options for AUTHID are CURRENT_USER and DEFINER.
Action: Fix the AUTHID clause to specify CURRENT_USER or DEFINER
PLS-00161: Pragma string expects 3rd argument to be an identifier or a string literal
Cause: The third argument (actual parameter) passed to the named pragma (compiler directive) was not an identifier or a string literal when there is a fourth argument to the pragma. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the third parameter, and make sure the proper syntax was used.
PLS-00162: Pragma string expects 4th argument to be a positive integer literal
Cause: The fourth argument (actual parameter) passed to the named pragma (compiler directive) was not a numeric literal, as required. The parameter might be misspelled, or the pragma syntax might be faulty (for example, a comma might be missing between two parameters).
Action: Check the spelling of the fourth parameter, and make sure the proper syntax was used.
PLS-00164: cursor subqueries are not supported in this release
Cause: This feature is not yet implemented.
Action: None
PLS-00165: call statement is not supported in PL/SQL
Cause: A CALL statement was found in PL/SQL source.
Action: Use an ordinary PL/SQL function or procedure call.
PLS-00166: bad format for date, time, timestamp or interval literal
Cause: The contents of the date, time, timestamp or interval literal did not match the expected format.
Action: Correct the format for the date, datetime, or interval literal.
PLS-00167: keyword BULK is used in a wrong context
Cause: keyword BULK is used illegally. For example, BULK is used without INTO clause
Action: remove the keyword BULK.
PLS-00168: duplicate modifier specification 'string'
Cause: A method or object type modifier was specified more than once.
Action: Remove all but one occurence of the duplicate modifier.
PLS-00169: modifier 'string' conflicts with prior 'string' specification
Cause: The method or object type modifier specified conflicts with an earlier modifier. For example, a FINAL modifier cannot be combined with a NOT FINAL modifier.
Action: Remove one of the conflicting modifiers.
PLS-00170: the SQL statement in an OPEN statement or FOR loop must be a SELECT
Cause: An OPEN cursor statement or cursor FOR loop can only invoke a SELECT statement, not an UPDATE, INSERT or DELETE.
Action: Use only SELECT statements in OPEN or cursor FOR loops
PLS-00171: duplicate dedicated AGENT specification in subprogram expression
Cause: The subprogram was found to have two dedicated AGENT specifications.
Action: Remove one of the dedicated AGENT specifications.
PLS-00172: string literal too long
Cause: The string literal was longer than 32767 bytes.
Action: Use a string literal of at most 32767 bytes.
PLS-00173: SPACE, TAB or RETURN are disallowed as alternative quote delimiters
Cause: SPACE, TAB or RETURN was used as alternative quote delimiter.
Action: Use a character other than SPACE, TAB or RETURN as the alternative quote delimiter.
PLS-00174: a static boolean expression must be used
Cause: The expression contained a syntax or semantic error, or it did not have a boolean type or its evaluation raised an exception.
Action: Write correct static boolean expression.
PLS-00176: unexpected preprocessor token '$string'
Cause: A preprocessor token was used inappropriately.
Action: Remove the preprocessor token that is inappropriately used.
PLS-00177: '$string' preprocessor directive does not end properly
Cause: A preprocessor directive was not ended properly.
Action: Use $end to end the preprocessor directive properly.
PLS-00178: a static character expression must be used
Cause: The expression contained a syntax or semantic error, or it did not have a character type or its evaluation raised an exception.
Action: Write correct static character expression.
PLS-00179: $ERROR: string
Cause: $ERROR directive was used. This is an expected error message.
Action: NA
PLS-00180: preprocessor directives are not supported in this context
Cause: A preprocessor directive was used in a compilation unit for which conditional compilation is not supported.
Action: Do not use any preprocessor directives in this compilation unit.
PLS-00181: unsupported preprocessor directive 'string'
Cause: An unsupported preprocessor directive was used.
Action: Use a supported preprocessor directive.
PLS-00182: Identifier cannot be an empty string
Cause: Identifier was declared using an empty string,
Action: rename the identifier to a non empty string.
PLS-00201: identifier 'string' must be declared
Cause: You tried to reference either an undeclared variable, exception, procedure, or other item, or an item to which no privilege was granted or an item to which privilege was granted only through a role.
Action: 1) Check your spelling and declaration of the referenced name. 2) Verify that the declaration for the referenced item is placed correctly in the block structure. 3) If the referenced item is indeed declared but you don't have privileges to refer to that item, for security reasons, you will be notified only that the item is not declared. 4) If the referenced item is indeed declared and you believe that you have privileges to refer to that item, check the privileges; if the privileges were granted only via a role, then this is expected and documented behavior. Stored objects (packages, procedures, functions, triggers, views) run in the security domain of the object owner with no roles enabled except PUBLIC. Again, you will be notified only that the item was not declared.
PLS-00202: type 'string' must be declared
Cause: An attempt was made to reference an undefined type. Either the type specifier was not declared or it is not within the scope of the reference.
Action: Check the spelling and declaration of the type specifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00203: function DECODE must be called with at least 3 non-boolean arguments
Cause: Less than three arguments were passed to the built-in function DECODE. Though DECODE takes a variable number of (non-Boolean) arguments, at least three arguments must be passed.
Action: Call DECODE with three or more arguments
PLS-00204: function or pseudo-column 'string' may be used inside a SQL statement only
Cause: A pseudocolumn or proscribed function was used in a procedural statement. The SQL pseudocolumns (LEVEL, ROWID, ROWNUM) can be used only in SQL statements. Likewise, certain functions such as DECODE, DUMP, and VSIZE and the SQL group functions (AVG, MIN, MAX, COUNT, SUM, STDDEV, VARIANCE) can be used only in SQL statements.
Action: Remove the pseudocolumn reference or function call from the procedural statement. Or, replace the procedural statement with a SELECT INTO statement; for example, replace bonus := DECODE(rating, 1, 5000, 2, 2500, ...); with the following statement: SELECT DECODE(rating, 1, 5000, 2, 2500, ...) INTO bonus FROM dual;
PLS-00205: Aggregate not allowed here
Cause: An aggregate, that is, a parenthesized list of values such as (7788, 'SCOTT', 20), was found in an inappropriate context.
Action: Remove or relocate the aggregate.
PLS-00206: %TYPE must be applied to a variable, column, field or attribute, not to "string"
Cause: The program object declared using the %TYPE datatype attribute is not of the appropriate class. It must be a variable, column, record component, subprogram formal parameter, or other object to which values can be assigned.
Action: Declare an object of the appropriate class or define the datatype in another way (for example, use %ROWTYPE).
PLS-00207: identifier 'string', applied to implicit cursor SQL, is not a legal cursor attribute
Cause: An identifier that is not a cursor attribute was applied to the identifier SQL. For example, this error occurs if the cursor attribute is misspelled.
Action: Check the spelling of the cursor attribute name. Make sure the attribute is one of these: %NOTFOUND, %FOUND, %ROWCOUNT, %ISOPEN.
PLS-00208: identifier 'string' is not a legal cursor attribute
Cause: An identifier not declared as a cursor attribute was applied to an identifier declared as a cursor. For example, this error occurs if the cursor attribute is misspelled.
Action: Check the spelling of the cursor attribute name. Make sure the attribute is one of these: %NOTFOUND, %FOUND, %ROWCOUNT, %ISOPEN.
PLS-00209: table 'string' is not in FROM clause
Cause: In a query, a table referenced by the select list is not named in the FROM clause.
Action: Check the spelling of the table names, make sure each column in the select list refers to a table in the FROM clause, then re-execute the query.
PLS-00210: an OTHERS clause is required in this CASE statement
Cause: Unless the clauses of a CASE statement mention all values of the type of the selecting expression, an OTHERS clause must be provided as the last clause of the CASE statement. It is impossible to cover all values of type INTEGER (or NUMBER), so an OTHERS clause is always required when the expression following the keyword CASE is of type INTEGER (or NUMBER).
Action: None
PLS-00211: CASE labels or ranges must not be duplicated in different WHEN clauses
Cause: In this CASE statement, a value appears in more than one WHEN clause. A value may appear in at most one WHEN clause of a CASE statement.
Action: None
PLS-00212: could not obtain enough memory to compile CASE statement
Cause: The CASE statement is too big. The compiler did not have enough storage to process it.
Action: None
PLS-00213: package STANDARD not accessible
Cause: The PL/SQL compiler could not find package STANDARD in the current Oracle database. To compile a program, PL/SQL needs package STANDARD.
Action: Make sure that package STANDARD is available in the current Oracle database, then retry the operation.
PLS-00214: BEGIN...END block nesting is too deep
Cause: The number of levels of nesting in the PL/SQL block is too large. Blocks can be nested up to 255 levels deep, depending on the availability of system resources such as memory.
Action: Reorganize the block structure to avoid nesting at too deep a level. For example, move the lowest-level sub-block to a higher level.
PLS-00215: String length constraints must be in range (1 .. 32767)
Cause: When a character variable was declared, a length outside the legal range was specified. For example, the following declarations are illegal: flag CHAR(0); -- illegal; zero length name VARCHAR2(-10); -- illegal; negative length
Action: Change the length constraint, making sure that it lies in the range 1 .. 32767.
PLS-00216: NUMBER precision constraint must be in range (1 .. 38)
Cause: A NUMBER variable was declared with a precision that is outside the legal range. Declarations such as N NUMBER(800) or N NUMBER(123,10) are not supported.
Action: Change the illegal NUMBER precision constraint, making sure that it lies in the range 1 .. 38.
PLS-00217: NUMBER scale constraint must be in range (-84 .. 127)
Cause: A NUMBER variable was declared with a scale that is outside the legal range. Declarations such as N NUMBER(10,345) or N NUMBER(10,-100) are not supported.
Action: Change the illegal NUMBER scale constraint, making sure that it lies in the range -84 .. 127.
PLS-00218: a variable declared NOT NULL must have an initialization assignment
Cause: In general, variables that have no initialization clause in their declaration are automatically initialized to NULL. This is illogical for NOT NULL variables; therefore, an initialization clause is required.
Action: Add an initialization clause to the variable declaration. If the initilization is too complicated for the syntax, one can add a function call (in a later release).
PLS-00219: label 'string' reference is out of scope
Cause: A block or loop label was used to qualify a variable (as in outer_block.date) that was not declared or is not within the scope of the label. The variable name might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the variable name. Also confirm that the declaration is placed correctly in the block structure.
PLS-00220: simple name required in this context
Cause: A qualified name such as A.B or A.B.C is not permitted here.
Action: Use a simple name such as A instead.
PLS-00221: 'string' is not a procedure or is undefined
Cause: An identifier being referenced as a procedure was not declared or actually represents another object (for example, it might have been declared as a function).
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00222: no function with name 'string' exists in this scope
Cause: An identifier being referenced as a function was not declared or actually represents another object (for example, it might have been declared as a procedure).
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00223: paramaterless procedure 'string' used as function
Cause: An identifier being referenced as a parameterless function actually represents a procedure.
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure. If necessary, change the declaration of the identifier or change the reference so that it does not require a return value.
PLS-00224: object 'string' must be of type function or array to be used this way
Cause: An identifier being referenced as a function or an array actually represents an object (a number or date, for example) that cannot be referenced in this way.
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00225: subprogram or cursor 'string' reference is out of scope
Cause: The prefix in a qualified name was a subprogram or cursor which was not in an enclosing scope; i.e., a subprogram or cursor name is being used as a scope qualifier for a reference to an entity (within that subprogram or cursor) that is not in scope. Example: declare x number; type t1 is record (a number); function f return t1 is a number; begin x := f.a; -- legal use of function "f" as a scope qualifier; -- resolves to local variable "a" in function "f". x := f().a; -- legal reference to component "a" of returned record end; begin x := f.a; -- illegal use of function "f" as a scope qualifier x := f().a; -- legal reference to component "a" of returned record end;
Action: a) if the intention was to refer to a local variable of a non-enclosing function, this is not allowed; remove the reference b) if this is a parameterless function, and the the intention was to access a field of the result of a call to this function, then use empty parentheses in the call.
PLS-00226: package 'string' used as variable reference
Cause: A package was referenced in an expression as if it were a variable or function. Either the name of the variable or function is misspelled or the reference is not fully qualified. For example, to call the function my_function, which is stored in package my_package, dot notation must be used, as follows: ... my_package.my_function ...
Action: Correct the spelling of the variable or function name or use dot notation to reference the packaged variable or function.
PLS-00227: subprogram 'in' formal string is not yet denotable
Cause: When the formal parameters of a subprogram were declared, one parameter was used to initialize another, as in PROCEDURE my_proc (j NUMBER, k NUMBER := j) IS ... The first parameter has no value until run time, so it cannot be used to initialize another parameter.
Action: Remove the illegal formal parameter reference.
PLS-00228: Illegal declaration of variable of type LONG
Cause: The identifier is a formal parameter which is being used in the context of a default expression value for a formal parameter in the same formal parameter list. E.g.: procedure p(j number, k number := j).
Action: Remove the offending variable definition
PLS-00229: Attribute expression within SQL expression
Cause: An attribute expression, such as SQL%NOTFOUND, was used in a SQL statement, but attribute expressions are allowed only in procedural statements.
Action: To workaround this limitation, assign the value of the attribute expression to a variable, then use the variable in the SQL statement. For example, replace the statement INSERT INTO audits VALUES (c1%ROWCOUNT, ...); with the following statements: row_count := c1%ROWCOUNT; INSERT INTO audits VALUES (row_count, ...);
PLS-00230: OUT and IN OUT formal parameters may not have default expressions
Cause: When the formal parameters of a procedure were declared, an OUT or IN OUT parameter was initialized to a default value, as in PROCEDURE calc_bonus (bonus OUT REAL := 0, ...) IS ... However, only IN parameters can be initialized to default values.
Action: Remove the illegal default expression.
PLS-00231: function 'string' may not be used in SQL
Cause: A proscribed function was used in a SQL statement. Certain functions such as SQLCODE and SQLERRM can be used only in procedural statements.
Action: Remove the function call from the SQL statement. Or, replace the function call with a local variable. For example, the following statement is illegal: INSERT INTO errors VALUES (SQLCODE, SQLERRM); However, you can assign the values of SQLCODE and SQLERRM to local variables, then use the variables in the SQL statement, as follows: err_num := SQLCODE; err_msg := SQLERRM; INSERT INTO errors VALUES (err_num, err_msg);
PLS-00232: nested packages not permitted
Cause: A package was declared inside another package, but package declarations are allowed only at the top level. In other words, packages cannot be nested.
Action: Move the package declaration outside the enclosing package.
PLS-00233: function name used as an exception name in when clause
Cause: The WHEN clause in an exception handler contains a function call instead of an exception name. A valid exception handler consists of a WHEN clause, which must specify an exception, followed by a sequence of statements to be executed when that exception is raised.
Action: Check the spelling of the identifier in the WHEN clause, then replace the function call with an exception name.
PLS-00234: PARAMETER STYLE SQL may not be specified with a PARAMATERS list
Cause: A subprogram cannot specify both PARAMETER STYLE SQL and an explicit PARAMETERS list. Use PARAMETER STYLE GENERAL to supply default PARAMETERS list types.
Action: Change the subprogram specification.
PLS-00235: the external type is not appropriate for the parameter
Cause: An unsuccessful attempt was made to convert a parameter to the specified external parameter type.
Action: Specify a different external type or parameter type.
PLS-00236: Invalid external type specification for string.
Cause: The external type specified is not valid for one of the following: INDICATOR, LENGTH, MAXLEN, TDO, DURATION, CHARSETID, or CHARSETFORM.
Action: Check the manual and specify an appropriate external type.
PLS-00237: invalid BY VALUE indicator or length specification
Cause: BY VALUE was specified with an indicator or length parameter that is being passed in OUT or IN OUT mode. Only IN mode parameters may be passed by value.
Action: Remove the BY VALUE specification or change it to IN mode.
PLS-00238: external parameter name string not found in formal parameter list
Cause: An external parameter name was specified that does not match one in the formal parameter list.
Action: Correct the external parameter name.
PLS-00239: invalid external type specification for SQLCODE
Cause: An inappropriate external parameter type was specified for the SQLCODE parameter.
Action: Correct the SQLCODE parameter specification.
PLS-00240: Invalid type specification for RETURN indicator, length, tdo, duration
Cause: An inappropriate external parameter type was specified for the RETURN indicator, LENGTH, TDO, or DURATION.
Action: Correct the RETURN parameter specification.
PLS-00241: invalid external type specification for SQLSTATE
Cause: An inappropriate external parameter type was specified for the SQLSTATE parameter.
Action: Correct the SQLSTATE parameter specification.
PLS-00242: invalid external type specification for CONTEXT
Cause: An inappropriate external parameter type was specified for the CONTEXT parameter.
Action: Correct the CONTEXT parameter specification.
PLS-00243: invalid external type specification for SQLNAME
Cause: An inappropriate external parameter type was specified for the SQLNAME parameter.
Action: Correct the SQLNAME parameter specification.
PLS-00244: Multiple declarations in foreign function formal parameter list
Cause: There are multiple declarations of at least one the following FORMAL, INDICATOR, LENGTH, MAXLENGTH, or CONTEXT. PL/SQL allows only one declaration of the above for each formal parameter in the PARAMETERS clause.
Action: Correct the PARAMETERS clause.
PLS-00245: Formals used in the 'parameters' clause must appear exactly once
Cause: There are multiple declarations of the formal parameter in the PARAMETERS clause. PL/SQL allows only one declaration of the formal parameter in the PARAMETERS clause.
Action: Correct the PARAMETERS clause.
PLS-00246: PARAMETER STYLE is unsupported
Cause: A PARAMETER STYLE clause was placed in the external subprogram body.
Action: Remove the PARAMETER STYLE clause.
PLS-00247: LIBRARY or ASSEMBLY name must be specified
Cause: The LIBRARY or ASSEMBLY name is missing from the external subprogram body.
Action: The LIBRARY or ASSEMBLY name was not specified in the external subprogram body.
PLS-00248: Invalid Library Syntax
Cause: The LIBRARY syntax was entered incorrectly.
Action: Correct the LIBRARY syntax and recompile.
PLS-00249: Invalid WITH CONTEXT Syntax
Cause: CONTEXT was used in a WITH CONTEXT or a PARAMETERS clause. This is invalid.
Action: Check if WITH CONTEXT is used without specifying CONTEXT in the PARAMETERS clause or vice versa. The PARAMETERS clause must be complete. Thus if WITH CONTEXT is specified, then CONTEXT must be referenced in the PARAMETERS clause (if there is one).
PLS-00250: Incorrect Usage of string in parameters clause.
Cause: The usage of Keywords such as MAXLEN, LENGTH, CHARSETID, CHARSETFORM RETURN in the parameters clause was incorrect
Action: This error occurs if keywords like MAXLEN, LENGTH, TDO, DURATION, CHARSETID, or CHARSETFORM cannot be used with PL/SQL formal parameters or the mode of the formal parameter. For example, MAXLEN can only be declared for a CHAR or VARCHAR2 PL/SQL variable and its use is allowed only for OUT or INOUT PL/SQL variables. Also, RETURN was specified in the parameters clause for a PL/SQL PROCEDURE. E.g. CREATE PROCEDURE proc IS EXTERNAL NAME ... LIBRARY ... PARAMETERS(RETURN INDICATOR SHORT, RETURN);
PLS-00251: RETURN, for actual function return, must be last in the parameters clause
Cause: RETURN specification for the actual function return, used within the parameters clause must hold the very last position. Example : The following will give this error since the RETURN specification for the actual function return in the parameters clause is not the last. FUNCTION myexternalfunc (var1 BINARY_INTEGER, var2 BINARY_INTEGER) RETURN BINARY_INTEGER IS EXTERNAL NAME "myexternalfunc" LIBRARY somelib PARAMETERS (var1 LONG, var2 SHORT, RETURN INT, RETURN INDICATOR SHORT); The correct syntax is the following. Note that RETURN for actual function return is the last specification in the parameters clause. FUNCTION myexternalfunc (var1 BINARY_INTEGER, var2 BINARY_INTEGER) RETURN BINARY_INTEGER IS EXTERNAL NAME "myexternalfunc" LIBRARY somelib PARAMETERS (var1 LONG, var2 SHORT, RETURN INDICATOR SHORT, RETURN INT);
Action: Correct the syntax of the RETURN specification in the parameters clause
PLS-00252: reference to the wrong copy of package STANDARD
Cause: A reference is made to the fixed package version of STANDARD when the database is open, or to the on-disk version when the database is closed. Explicit use of a SYS.X$ package name can lead to this. One might also see this from a compilation that begins while the db is closed but has the bad luck to have another session open the db before compilation is complete. Another possible cause is having 'set serveroutput on' through svrmgrl when doing an 'alter database close'.
Action: Make use of on-disk versions of packages when the database is open and fixed (preloaded) versions when the database is closed. Do not attempt to use the wrong set. It should be quite hard to reference the wrong set, except by using SYS.X$ package names explicitly. Also, be sure to 'set serveroutput off' before doing an 'alter database close'.
PLS-00253: Formal parameter string missing in the parameters clause
Cause: The parameter clause does not have a matching parameter for a parameter specified in the formal parameter list.
Action: Provide a matching parameter in parameters clause for every formal parameter.
PLS-00254: OUT and IN/OUT modes cannot be used in this context
Cause: actual parameter mode (OUT, or IN/OUT) is not used properly in USING clause. For USING clause in an OPEN statement, only IN mode is allowed.
Action: change the parameter mode in the USING clause to an appropriate mode.
PLS-00255: CALL Specification parameters cannot have default values
Cause: CALL Specification formal parameters default values are disallowed.
Action: Remove the default values in the formal parameter list (spec or body) and compile again.
PLS-00256: string is not a valid external library or assembly
Cause: The supplied external library or assembly name in the external clause is not a valid alias library or assembly.
Action: Provide the name of a valid alias library or assembly which is previously declared.
PLS-00257: illegal use of EXTERNAL clause in a TYPE or PACKAGE specification
Cause: An EXTERNAL Clause was detected in a TYPE Specification or a PACKAGE specification.
Action: Remove the EXTERNAL Clause and use the new CALL Specification syntax.
PLS-00258: constrained datatypes disallowed in CALL Specifications
Cause: A call specification for C or Java cannot have constraints on the PL/SQL formal parameter types. PL/SQL types which have have constraints are NATURAL, NATURALN, POSITIVE, POSITIVEN, SIGNTYPE, INTEGER, INT, SMALLINT, DECIMAL, NUMERIC, DEC This includes NOT NULL constraints from POSITIVEN, NATURALN
Action: Use the unconstrained type for that PL/SQL formal declaration i.e NUMBER, BINARY_INTEGER or PLS_INTEGER
PLS-00259: rights model (AUTHID) must be specified
Cause: It is mandatory to specify the rights model if a PL/SQL PROCEDURE, FUNCTION, PACKAGE OR TYPE HAS CALL-Specifications
Action: Add the AUTHID clause indicating the rights model.
PLS-00260: Datetime/Interval constraints must be in range (0 .. 9)
Cause: A Datetime/Interval variable or attribute was declared with a constraint outside the legal range.
Action: Change the illegal constraint.
PLS-00261: Java CALL Specification not yet allowed as a method in an object type
Cause: A call specification declaring that an implementation is in Java has been found for a method of an object or opaque type. This usage is not yet supported.
Action: Implement the method using a language other than Java. A PL/SQL method implementation is permitted to call to Java through a call specification provided as a schema-level procedure or in a package; such a call specification can only target a static Java method, however. ****** errors until 300 are reserved for External Procedures ********** ****** PH2 errors **********
PLS-00301: Invalid GOTO to non-label 'string'
Cause: A GOTO was attempted to something which is not a label (for example, a variable).
Action: Specify a valid label name.
PLS-00302: component 'string' must be declared
Cause: In a reference to a component (for example, in the name "A.B", "B" is a component of "A"), the component has not been declared. The component might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the component. Also confirm that the declaration is placed correctly in the block structure.
PLS-00303: qualifier 'string' must be declared
Cause: In a name such as "A.B", "A" is the qualifier, and "B" is a component of the qualifier. This error occurs when no declaration for the qualifier is found.The qualifier might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the qualifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00304: cannot compile body of 'string' without its specification
Cause: The compiled package specification required to compile a package body could not be found. Some possible causes follow: --the package name is misspelled --the package specification was never compiled --the compiled package specification is not accessible The package specification must be compiled before compiling the package body, and the compiler must have access to the compiled specification.
Action: Check the spelling of the package name. Compile the package specification before compiling the package body. Also, make sure the compiler has access to the compiled specification.
PLS-00305: previous use of 'string' (at line string) conflicts with this use
Cause: While looking for prior declarations of a cursor, procedure, function, or package, the compiler found another object with the same name in the same scope. Or, the headers of subprogram in a package specification and body do not match word for word.
Action: Check the spelling of the cursor, procedure, function, or package name. Also check the names of all constants, variables, parameters, and exceptions declared in the same scope. Then, remove or rename the object with the duplicate name. Or, change the headers of the packaged subprogram so that they match word for word.
PLS-00306: wrong number or types of arguments in call to 'string'
Cause: This error occurs when the named subprogram call cannot be matched to any declaration for that subprogram name. The subprogram name might be misspelled, a parameter might have the wrong datatype, the declaration might be faulty, or the declaration might be placed incorrectly in the block structure. For example, this error occurs if the built-in square root function SQRT is called with a misspelled name or with a parameter of the wrong datatype.
Action: Check the spelling and declaration of the subprogram name. Also confirm that its call is correct, its parameters are of the right datatype, and, if it is not a built-in function, that its declaration is placed correctly in the block structure.
PLS-00307: too many declarations of 'string' match this call
Cause: The declaration of a subprogram or cursor name is ambiguous because there was no exact match between the declaration and the call and more than one declaration matched the call when implicit conversions of the parameter datatypes were used. The subprogram or cursor name might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the subprogram or cursor name. Also confirm that its call is correct, its parameters are of the right datatype, and, if it is not a built-in function, that its declaration is placed correctly in the block structure.
PLS-00308: this construct is not allowed as the origin of an assignment
Cause: The construct or expression does not designate a value that can be assigned to a variable. For example, the datatype name NUMBER cannot appear on the right hand side of an assignment statement as in X := NUMBER.
Action: Correct the illegal assignment statement.
PLS-00309: with %LAST attribute, 'string' must be a variable of an enumerated type
Cause: The "%LAST" attribute must be applied to an identifier that has been declared as a variable of an enumerated type (or subtype of an enumerated type). This error occurs when "%LAST" follows some identifier that has not been so declared.
Action: None
PLS-00310: with %ROWTYPE attribute, 'string' must name a table, cursor or cursor-variable
Cause: The %ROWTYPE attribute must be applied to an identifier declared as a cursor, cursor variable, or database table. This error occurs when %ROWTYPE follows some identifier that has not been so declared.
Action: Change the declaration or do not apply the %ROWTYPE attribute to the identifier.
PLS-00311: the declaration of "string" is incomplete or malformed
Cause: This occurrence of the identifier cannot be compiled because its type has not been properly defined.
Action: Correct the faulty datatype declaration.
PLS-00312: a positional parameter association may not follow a named association
Cause: When a list of parameters is passed to a subprogram or cursor, if both positional and named associations are used, all positional associations must be placed in their declared order and before all named associations, which can be in any order.
Action: Reorder the parameter list to meet the requirements or use named association only.
PLS-00313: 'string' not declared in this scope
Cause: There is no declaration for the given identifier within the scope of reference. The identifier might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00314: TABLE declarations are not allowed as PL/SQL local variables
Cause: In a precompiled program, the DECLARE TABLE statement was mistakenly used inside an embedded PL/SQL block. If an embedded PL/SQL block refers to a database table that does not yet exist, use the DECLARE TABLE statement to tell the precompiler what the table will look like. However, DECLARE TABLE statements are allowed only in the host program.
Action: Move the DECLARE TABLE statement outside the embedded PL/SQL block. If you want a variable that can store an entire row of data selected from a database table or fetched from a cursor or cursor variable, use the %ROWTYPE attribute.
PLS-00315: Implementation restriction: unsupported table index type
Cause: In the INDEX BY clause of a PL/SQL table declaration, a datatype other than BINARY_INTEGER, PLS_INTEGER, or VARCHAR2 was specified. PL/SQL tables can have one column and a primary key. The column can have any scalar type, but the primary key must be either a binary integer type or VARCHAR2.
Action: Use one of the supported key types in the INDEX BY clause.
PLS-00316: PL/SQL TABLEs must use a single index
Cause: In the INDEX BY clause of a PL/SQL table declaration, a composite primary key was specified. PL/SQL tables must have a simple, unnamed primary key of a binary integer or VARCHAR2 type.
Action: Use one of the supported key types in the INDEX BY clause.
PLS-00317: incomplete type "string" was not completed in its declarative region
Cause: An incomplete type declaration was not completed in the declarative region where it was declared.
Action: Complete the type appropriately, then retry the operation.
PLS-00318: type "string" is malformed because it is a non-REF mutually recursive type
Cause: A type-declaration such as: -- a non-REF recursive type, for example: type t is record (a t); or -- non-REF mutually dependent types, for example: type t1; type t2 is record (a t1); type t1 is record (a t2); was performed. In these examples, the type is malformed because it participates in a mutually recursive non-REF relationship with itself and possibly other types.
Action: Use another type to remove the recursion.
PLS-00319: subquery in an IN or NOT IN clause must contain exactly one column
Cause: An invalid expression such as X IN (SELECT A,B ...) was used. When a [NOT]IN clause is used with a subquery, it does not test for set membership. The number of expressions in the [NOT]IN clause and the subquery select list must match. So, in the example above, the subquery must specify at most one column.
Action: Change the subquery to select only one column.
PLS-00320: the declaration of the type of this expression is incomplete or malformed
Cause: In a declaration, the name of a variable or cursor is misspelled or the declaration makes a forward reference. Forward references are not allowed in PL/SQL. A variable or cursor must be declared before it is referenced it in other statements, including other declarative statements. For example, the following declaration of dept_rec raises this exception because it refers to a cursor not yet declared: DECLARE dept_rec dept_cur%ROWTYPE; CURSOR dept_cur IS SELECT ... ...
Action: Check the spelling of all identifiers in the declaration. If necessary, move the declaration so that it makes no forward references.
PLS-00321: expression 'string' is inappropriate as the left hand side of an assignment statement
Cause: The expression does not designate a variable that can have a value assigned to it. For example, the function SYSDATE cannot appear on the left hand side of an assignment statement such as SYSDATE := '01-JAN-1990';
Action: Correct the illegal assignment statement.
PLS-00322: declaration of a constant 'string' must contain an initialization assignment
Cause: A constant declaration lacks the assignment of an initial value. For example, in the following declaration" := 3.14159" is the initialization clause: "pi constant number := 3.14159;"
Action: Correct the constant declaration by supplying the missing initialization assignment.
PLS-00323: subprogram or cursor 'string' is declared in a package specification and must be defined in the package body
Cause: A subprogram specification was placed in a package specification, but the corresponding subprogram body was not placed in the package body. The package body implements the package specification. So, the package body must contain the definition of every subprogram declared in the package specification.
Action: Check the spelling of the subprogram name. If necessary, add the missing subprogram body to the package body.
PLS-00324: cursor attribute may not be applied to non-cursor 'string'
Cause: This error occurs when a cursor-attribute ("%FOUND", "%NOTFOUND", "%ROWS", "%IS_OPEN", etc.) appears following an identifier that is not declared as a cursor or cursor variable. It occurs, for example, if the variable name my_cur in my_cur%FOUND was not properly declared as a cursor or if the variable declaration was placed incorrectly in the block structure.
Action: Check the spelling and declaration of the identifier. Also confirm that the declaration is placed correctly in the block structure.
PLS-00325: non-integral numeric literal string is inappropriate in this context
Cause: A non-integral numeric literal was used in a context that requires an integer (a number with no digits to the right of its decimal point).
Action: Replace the inappropriate literal with an integer literal.
PLS-00326: IN clause must contain same number of expressions as subquery
Cause: The number of expressions in an IN clause did not equal the number of expressions in a corresponding subquery select list. For example, the following statement is invalid because the IN clause contains two expressions, but the subquery select list contains just one: ... WHERE (ename, sal) IN (SELECT sal FROM emp);
Action: Check the number of expressions in each set, then revise the statement to make the numbers equal.
PLS-00327: "string" is not in SQL scope here
Cause: In a SQL statement, a reference was made to an out-of-scope database object. The referenced object might be misspelled, or the reference might be mixed, as in the following example: CURSOR c1 IS SELECT dept.dname FROM emp;
Action: Check the spelling of all database objects in the SQL statement, and make sure all references are to objects within the current scope.
PLS-00328: A subprogram body must be defined for the forward declaration of string.
Cause: A subprogram specification was declared, but the corresponding subprogram body was not defined. Write the subprogram specification and body as a unit. An alternative solution is to separate the specification from its body, which is necessary when you want to define mutually recursive subprograms or you want to group subprograms in a package.
Action: Check the spelling of the subprogram name. If necessary, supply the missing subprogram body.
PLS-00329: schema-level type has illegal reference to string
Cause: An attempt was made to make a reference from a schema-level type to something other than a schema-level type.
Action: Replace the illegal reference and retry the operation.
PLS-00330: invalid use of type name or subtype name
Cause: A datatype or subtype specifier was mistakenly used in place of a constant, variable, or expression. For example, the code might look like IF emp_count > number THEN ... -- illegal; NUMBER is a datatype specifier
Action: Replace the datatype or subtype specifier with a valid constant, variable, or expression.
PLS-00331: illegal reference to string
Cause: You had an EITHER

1. an illegal reference to some object in user SYS. to use one of them in an illegal way OR

2. an illegal reference to a remote object type.

Action: Remove the reference.
PLS-00332: "string" is not a valid prefix for a qualified name
Cause: You have a malformed qualified name because the prefix is not valid.
Action: Remove or change the reference.
PLS-00333: "string" must match an object-table alias in this context
Cause: The name, appearing in the context of a REF or VALUE, did not resolve to an object-table alias.
Action: 1) If there is no object table in the scope, then remove the REF or VALUE; or provide the missing object table reference. 2) If there is an object table in the scope, but you're not referring to it, add the reference.
PLS-00334: "string" matches table or view without an alias
Cause: You have a reference to a table or view name without an alias.
Action: Replace the reference with a reference to an object-table alias.
PLS-00335: a package name conflicts with an existing object
Cause: In a CREATE PACKAGE statement, a package (which is a database object that groups logically related PL/SQL types, objects, and subprograms) was given the same name as an existing database object.
Action: Give the package a unique name.
PLS-00336: non-object-table "string" illegal in this context
Cause: You have a REF or VALUE modifier for a non-object-table
Action: Replace the reference with a reference to an object-table alias.
PLS-00337: "string" matches too many object table aliases
Cause: You have an ambiguous reference to an object-table alias; there are at least two object-table aliases in the same scope.
Action: Remove all but one of the references or change the alias names of the remaining.
PLS-00338: unable to resolve "string" as a column or row expression
Cause: You have a reference to a name that could not be resolved as a column or row expression. This occurred in an update or insert statement involving an object-table.
Action: If this is an update statement and you intended to code this as a column reference, fix it as such. If you intended to code this as a row expression, change this to refer to an alias of an object-table.
PLS-00339: "string" matches object-table without a REF or VALUE modifier
Cause: You have an object-table name appearing without a REF or VALUE modifier.
Action: If you intended to code this with a REF or VALUE modifier, add the modifier; if you intended to code this as a column reference, change the reference appropriately; otherwise, remove the reference.
PLS-00341: declaration of cursor 'string' is incomplete or malformed
Cause: A cursor declaration is improper or an identifier referenced in the cursor declaration was not properly declared. A return type that does not refer to an existing database table or a previously declared cursor or cursor variable might have been specified. For example, the following cursor declaration is illegal because c1 is not yet fully defined: CURSOR c1 RETURN c1%ROWTYPE IS SELECT ... -- illegal In this case, a return type does not have to be specified because it is implicit.
Action: Check the spelling and declaration of the cursor name and any identifiers referenced in the cursor declaration. Also confirm that the declaration is placed correctly in the block structure. If a return type was specified, make sure that it refers to an existing database table or a previously declared cursor or cursor variable.
PLS-00351: Not logged onto database 'string'
Cause: An attempt was made to access an Oracle database without being logged on. Probably, an invalid username or password was entered.
Action: Log on to Oracle with a correctly spelled username and password before trying to access the database.
PLS-00352: Unable to access another database 'string'
Cause: An attempt was made to reference an object in a database other than the current local or remote Oracle database.
Action: Correct the reference and make sure the object is in the current Oracle database.
PLS-00353: 'string' must name a user in the database
Cause: This error occurs when the username was misspelled or when the user does not exist in the database.
Action: Check the spelling of the username and make sure the user exists.
PLS-00354: username must be a simple identifier
Cause: A qualified username such as scott.accts is not permitted in this context.
Action: Specify a simple username such as scott instead.
PLS-00355: use of pl/sql table not allowed in this context
Cause: A PL/SQL table was referenced in the wrong context (for example, with a remote link).
Action: Remove the PL/SQL table reference or change the context.
PLS-00356: 'string' must name a table to which the user has access
Cause: The named table is not accessible to the user. This error occurs when the table name or username was misspelled, the table and/or user does not exist in the database, the user was not granted the necessary privileges, or the table name duplicates the name of a local variable or loop counter.
Action: Check the spelling of the table name and username. Also confirm that the table and user exist, the user has the necessary privileges, and the table name does not duplicate the name of a local variable or loop counter.
PLS-00357: Table,View Or Sequence reference 'string' not allowed in this context
Cause: A reference to database table, view, or sequence was found in an inappropriate context. Such references can appear only in SQL statements or (excluding sequences) in %TYPE and %ROWTYPE declarations. Some valid examples follow: SELECT ename, emp.deptno, dname INTO my_ename, my_deptno, my_dept .FROM emp, dept WHERE emp.deptno = dept.deptno; DECLARE last_name emp.ename%TYPE; dept_rec dept%ROWTYPE;
Action: Remove or relocate the illegal reference.
PLS-00358: column 'string' exists in more than one table; use qualifier
Cause: The statement is ambiguous because it specifies two or more tables having the same column name. For example, the following statement is ambiguous because deptno is a column in both tables: SELECT deptno, loc INTO my_deptno, my_loc FROM emp, dept;
Action: Precede the column name with the table name (as in emp.deptno) so that the column reference is unambiguous.
PLS-00359: assignment target in 'string' must have components
Cause: An assignment target was declared that lacks the components needed to store the assigned values. For example, this error occurs if you try to assign a row of column values to a variable instead of a record, as follows: DECLARE dept_rec dept%ROWTYPE; my_deptno dept.deptno%TYPE; ... BEGIN SELECT deptno, dname, loc INTO my_deptno -- invalid FROM dept WHERE ...
Action: Check the spelling of the names of the assignment target and all its components. Make sure the assignment target is declared with the required components and that the declaration is placed correctly in the block structure.
PLS-00360: cursor declaration without body needs return type
Cause: A cursor declaration lacks either a body (SELECT statement) or a return type. If you want to separate a cursor specification from its body, a return type must be supplied, as in CURSOR c1 RETURN emp%ROWTYPE;
Action: Add a SELECT statement or return type to the cursor declaration.
PLS-00361: IN cursor 'string' cannot be OPEN'ed
Cause: A cursor parameter with mode IN cannot be modified, and therefore cannot be opened.
Action: Change the cursor parameter to be IN OUT or OUT
PLS-00362: invalid cursor return type; 'string' must be a record type
Cause: In a cursor specification or REF CURSOR type definition, a non- record type such as NUMBER or TABLE was specified as the return type. This is not allowed. Only the following return types are allowed: <record_type_name> <record_name>%TYPE <table_name>%ROWTYPE <cursor_name>%ROWTYPE <cursor_variable_name>%ROWTYTPE
Action: Revise the cursor specification or REF CURSOR type definition so that it specifies one of the above return types.
PLS-00363: expression 'string' cannot be used as an assignment target
Cause: A literal, constant, IN parameter, loop counter, or function call was mistakenly used as the target of an assignment. For example, the following statement is illegal because the assignment target, 30, is a literal: SELECT deptno INTO 30 FROM dept WHERE ... -- illegal
Action: Correct the statement by using a valid assignment target.
PLS-00364: loop index variable 'string' use is invalid
Cause: An attempt was made to assign the value of an OUT parameter to
Action: Use an IN OUT parameter instead of the OUT parameter. Inside a
PLS-00366: subtype of a NOT NULL type must also be NOT NULL
Cause: After a subtype was defined as NOT NULL, it was used as the base type for another subtype defined as NULL. That is not allowed. For example, the code might look like DECLARE SUBTYPE Weekday IS INTEGER NOT NULL; SUBTYPE Weekend IS Weekday NULL; -- illegal instead of DECLARE SUBTYPE Weekday IS INTEGER NOT NULL; SUBTYPE Weekend IS Weekday;
Action: Revise the subtype definitions to eliminate the conflict.
PLS-00367: a RAISE statement with no exception name must be inside an exception handler
Cause: A RAISE statement not followed by an exception name was found outside an exception handler
Action: Delete the RAISE statement, relocate it to an exception handler, or supply the missing exception name.
PLS-00368: in RAISE statement, 'string' must be an exception name
Cause: The identifier in a RAISE statement is not a valid exception name.
Action: Make sure the identifier in the RAISE statement was declared as an exception and is correctly placed in the block structure. If you are using the name of a PL/SQL predefined exception, check its spelling.
PLS-00369: no choices may appear with choice OTHERS in an exception handler
Cause: A construct of the form WHEN excep1 OR OTHERS => was encountered in the definition of an exception handler. The OTHERS handler must appear by itself as the last exception handler in a block.
Action: Remove the identifier that appears with OTHERS or write a separate exception handler for that identifier.
PLS-00370: OTHERS handler must be last among the exception handlers of a block
Cause: One or more exception handlers appear after an OTHERS handler. However, the OTHERS handler must be the last handler in a block or subprogram because it acts as the handler for all exceptions not named specifically.
Action: Move the OTHERS handler so that it follows all specific exception handlers.
PLS-00371: at most one declaration for 'string' is permitted
Cause: A reference to an identifier was ambiguous because there were multiple declarations for the identifier. At most one local variable with a given identifier is permitted in the declarative part of a block, procedure, or function. At most one label with a given identifier may appear in a block.
Action: Check the spelling of the identifier. If necessary, remove all but one declaration of the identifier.
PLS-00372: In a procedure, RETURN statement cannot contain an expression
Cause: In a procedure, a RETURN statement contains an expression, which is not allowed. In functions, a RETURN statement must contain an expression because its value is assigned to the function identifier. However, in procedures, a RETURN statement simply lets you exit before the normal end of the procedure is reached.
Action: Remove the expression from the RETURN statement, or redefine the procedure as a function.
PLS-00373: EXIT/CONTINUE label 'string' must label a LOOP statement
Cause: The label in the EXIT or CONTINUE statement did not refer to a LOOP statement. An EXIT or CONTINUE statement need not specify a label. However, if a label is specified (as in EXIT my_label or CONTINUE my_label), it must refer to a LOOP statement.
Action: Make sure the label name is spelled correctly and that it refers to a LOOP statement.
PLS-00374: illegal EXIT/CONTINUE statement; must appear inside the loop labeled 'string'
Cause: The label in the EXIT or CONTINUE statement did not refer to a loop statement. An EXIT or CONTINUE statement need not specify a label. However, if a label is specified (as in EXIT my_label or CONTINUE my_label), the EXIT or CONTINUE statement must be inside the LOOP statement designated by that label.
Action: Make sure the label name is spelled correctly; if necessary, move the EXIT or CONTINUE statement inside the LOOP statement to which the label refers.
PLS-00375: illegal GOTO statement; this GOTO cannot branch to label 'string'
Cause: The line and column numbers accompanying the error message refer to a GOTO that branches from outside a construct (a loop or exception handler, for example) that contains a sequence of statements to a label inside that sequence of statements. Such a branch is not allowed.
Action: Either move the GOTO statement inside the sequence of statements or move the labeled statement outside the sequence of statements.
PLS-00376: illegal EXIT/CONTINUE statement; it must appear inside a loop
Cause: An EXIT or CONTINUE statement was found outside of a loop construct. The EXIT statement is used to exit prematurely from a loop and the CONTINUE statement is used to begin the next iteration of a loop; each must always appear within a loop.
Action: Either remove the EXIT or CONTINUE statement or place it inside a loop.
PLS-00377: internal type PLS_INTEGER is not included in this release of PL/SQL
Cause: The type-name INTEGER was used in a declaration.
Action: None
PLS-00378: invalid compilation unit for this release of PL/SQL
Cause: A compilation unit is a file containing PL/SQL source code that is passed to the compiler. Only compilation units containing blocks, declarations, statements, and subprograms are allowed. This error occurs when some other language construct is passed to the compiler.
Action: Make sure the compilation unit contains only blocks, declarations, statements, and subprograms.
PLS-00379: CASE statements are not included in this release of PL/SQL
Cause: The unit being compiled contains a CASE statement. However, the current release of PL/SQL does not support CASE statements.
Action: Remove the CASE statement from the compilation unit.
PLS-00380: functions and procedures are not included in this release of PL/SQL
Cause: The program being compiled contains a declaration of a FUNCTION or PROCEDURE.
Action: None
PLS-00381: type mismatch found at 'string' between column and variable in subquery or INSERT
Cause: The datatypes of a column and a variable do not match. The variable was encountered in a subquery or INSERT statement.
Action: Change the variable datatype to match that of the column.
PLS-00382: expression is of wrong type
Cause: An expression has the wrong datatype for the context in which it was found.
Action: Change the datatype of the expression. You might want to use datatype conversion functions.
PLS-00383: type mismatch found at 'string' inside an IN or NOT IN clause
Cause: In a test for set membership such as X NOT IN (SELECT Y ... ), the expressions X and Y do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the expressions so that their datatypes match. You might want to use datatype conversion functions in the select list.
PLS-00384: type mismatch found at 'string' in UPDATE's SET clause
Cause: The column to the left of the equal sign in the SET clause of an UPDATE statement does not match in datatype with the column, expression, or subquery to the right of the equal sign, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the expressions so that their datatypes match. You might want to use datatype conversion functions in the SET clause.
PLS-00385: type mismatch found at 'string' in SELECT...INTO statement
Cause: The expressions to the left and right of the INTO clause in a SELECT...INTO statement do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the expressions so that their datatypes match. You might want to use datatype conversion functions in the select list.
PLS-00386: type mismatch found at 'string' between FETCH cursor and INTO variables
Cause: An assignment target in the INTO list of a FETCH statement does not match in datatype with the corresponding column in the select list of the cursor declaration, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the cursor declaration or change the datatype of the assignment target. You might want to use datatype conversion functions in the select list of the query associated with the cursor.
PLS-00387: INTO variable cannot be a database object
Cause: An item in the INTO list of a FETCH or SELECT statement was found to be a database object. INTO introduces a list of user-defined variables to which output values are assigned. Therefore, database objects cannot appear in the INTO list.
Action: Check the spelling of the INTO list item. If necessary, remove the item from the INTO list or replace it with a user-defined output variable.
PLS-00388: undefined column 'string' in subquery
Cause: A subquery contains a column name that was not defined in the specified table.
Action: Change the expression to specify a column that was defined.
PLS-00389: table, view or alias name "string" not allowed in this context
Cause: A table, view or alias name <name> corresponding to a regular (non-object) table appeared in an inappropriate context.
Action: Remove the reference, or, if you intended to code this as a column reference, fix it as such.
PLS-00390: undefined column 'string' in INSERT statement
Cause: Check the spelling of the column name, then change the expression so that it refers only to defined columns.
Action: Check the spelling of the column name, then change the expression so that it refers only to defined columns.
PLS-00391: undefined column 'string' in UPDATE statement
Cause: An UPDATE statement refers to a column not defined for the table or view being updated.
Action: Check the spelling of the column name, then revise the statement so that it refers only to defined columns.
PLS-00392: Type mismatch in arguments to BETWEEN
Cause: In a comparison such as X BETWEEN Y AND Z, the expressions X, Y, and Z do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the expressions so that their datatypes match. You might want to use datatype conversion functions.
PLS-00393: wrong number of columns in SELECT...INTO statement
Cause: The number of columns selected by a SELECT...INTO statement does not match the number of variables in the INTO clause.
Action: Change the number of columns in the select list or the number of variables in the INTO clause so that the numbers match.
PLS-00394: wrong number of values in the INTO list of a FETCH statement
Cause: The number of variables in the INTO clause of a FETCH statement does not match the number of columns in the cursor declaration.
Action: Change the number of variables in the INTO clause or the number of columns in the cursor declaration so that the numbers match.
PLS-00395: wrong number of values in VALUES clause of INSERT statement
Cause: The number of columns in an INSERT statement does not match the number of values in the VALUES clause. For example, the following statement is faulty because no column is specified for the value 20: INSERT INTO emp (empno, ename) VALUES (7788, 'SCOTT', 20);
Action: Change the number of items in the column list or the number of items in the VALUES list so that the numbers match.
PLS-00396: INSERT statement's subquery yields wrong number of columns
Cause: The number of columns in an INSERT statement does not match the number of columns in a subquery select list. For example, the following statement is faulty because no corresponding column is specified for col3: INSERT INTO emp (ename, empno) SELECT col1, col2, col3 FROM ...
Action: Change the number of items in the column list of the INSERT statement or the number of items in the select list so that the numbers match.
PLS-00397: Type mismatch in arguments to IN
Cause: In a test for set membership such as X IN (Y, Z), the expressions X, Y, and Z do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the expressions so that their datatypes match. You might want to use datatype conversion functions.
PLS-00398: wrong number of columns in UNION, INTERSECT, or MINUS expression
Cause: The SELECT clauses to the left and right of a UNION, INTERSECT, or MINUS expression do not select the same number of columns. For example, the following statement is faulty because the select lists do not contain the same number of items: CURSOR my_cur IS SELECT ename FROM emp INTERSECT SELECT ename, empno FROM emp;
Action: Change the select lists so that they contain the same number of items.
PLS-00399: different types of columns in UNION, INTERSECT, or MINUS expression
Cause: The select lists to the left and right of a UNION, INTERSECT, or MINUS expression select at least one column that is mismatched in datatype. For example, the following statement is faulty because the constant 3 has datatype NUMBER, whereas SYSDATE has datatype DATE: CURSOR my_cur IS SELECT 3 FROM emp INTERSECT SELECT SYSDATE FROM emp;
Action: Change the select lists so that they match in datatype. You might want to use datatype conversion functions in the select list of one or more queries.
PLS-00400: different number of columns between cursor SELECT statement and return value
Cause: In a cursor declaration, a return type (such as RETURN emp%ROWTYPE) was specified, but the number of returned column values does not match the number of select-list items.
Action: Change the cursor return type or the select list so that the number of returned column values matches the number of select-list items.
PLS-00401: different column types between cursor SELECT statement and return value found at 'string'
Cause: In a cursor declaration, a return type (such as RETURN emp%ROWTYPE) was specified, but a returned column value and its corresponding select-list item have different datatypes.
Action: Change the cursor return type or the select list so that each returned column value and its corresponding select-list item have the same datatype.
PLS-00402: alias required in SELECT list of cursor to avoid duplicate column names
Cause: A cursor was declared with a SELECT statement that contains duplicate column names. Such references are ambiguous.
Action: Replace the duplicate column name in the select list with an alias.
PLS-00403: expression 'string' cannot be used as an INTO-target of a SELECT/FETCH statement
Cause: A FETCH statement was unable to assign a value to an assignment target in its INTO list because the target is not a legally formed and declared variable. For example, the following assignment is illegal because 'Jones' is a character string, not a variable: FETCH my_cur INTO 'Jones';
Action: Check the spelling and declaration of the assignment target. Make sure that the rules for forming variable names are followed.
PLS-00404: cursor 'string' must be declared with FOR UPDATE to use with CURRENT OF
Cause: The use of the CURRENT OF cursor_name clause is legal only if cursor_name was declared with a FOR UPDATE clause.
Action: Add a FOR UPDATE clause to the definition of the cursor or do not use the CURRENT OF cursor_name clause.
PLS-00405: subquery not allowed in this context
Cause: A subquery was used in an inappropriate context, such as: if (SELECT deptno FROM emp WHERE ... ) = 20 then ... Subqueries are allowed only in SQL statements.
Action: The same result can be obtained by using a temporary variable, as in: SELECT deptno INTO temp_var FROM emp WHERE ...; IF temp_var = 20 THEN ...
PLS-00406: length of SELECT list in subquery must match number of assignment targets
Cause: A query select list is not the same length as the list of targets that will receive the returned values. For example, the following statement is faulty because the subquery returns two values for one target: UPDATE emp SET ename = (SELECT ename, empno FROM emp WHERE ename = 'SMITH') ...
Action: Change one of the lists so that they contain the same number of items.
PLS-00407: '*' not allowed here; a list of columns is required
Cause: An asterisk (*) was used as an abbreviation for a list of column names. However, in this context the column names must be written out explicitly.
Action: Replace the asterisk with a list of column names.
PLS-00408: duplicate column 'string' not permitted in INSERT or UPDATE
Cause: An UPDATE or INSERT statement has a column list that contains duplicate column names.
Action: Check the spelling of the column names, then eliminate the duplication.
PLS-00409: duplicate variable 'string' in INTO list is not permitted
Cause: The same variable appears twice in the INTO list of a SELECT or FETCH statement.
Action: Remove one of the variables from the INTO list.
PLS-00410: duplicate fields in RECORD,TABLE or argument list are not permitted
Cause: When a user-defined record was declared, the same name was given to two fields. Like column names in a database table, field names in a user-defined record must be unique.
Action: Check the spelling of the field names, then remove the duplicate.
PLS-00411: Number of values in aggregate and in subquery don't match
Cause: In a statement of the form aggregate = subquery, the numbers of values in the aggregate and subquery are unequal. For example, the code might look like ... WHERE (10,20,30) = (SELECT empno,deptno FROM emp WHERE...);
Action: Revise the aggregate or subquery so that the numbers of values match.
PLS-00412: list of values not allowed as argument to this function or procedure
Cause: A parenthesized list of values separated by commas (that is, an aggregate) was used in the wrong context. For example, the following usage is invalid: WHERE (col1, col2) > (SELECT col3, col4 FROM my_table ...) However, an equal sign can take a list of values and a subquery as left- and right-hand-side arguments, respectively. So, the following usage is valid: WHERE (col1, col2) = (SELECT col3, col4 FROM my_table ...)
Action: Rewrite the expression. For example, the clause WHERE (col1, col2) > (SELECT col3, col4 FROM my_table ...) can be rewritten as WHERE col1 > (SELECT col3 FROM my_table ...) AND col2 > (SELECT col4 FROM my_table ...)
PLS-00413: identifier in CURRENT OF clause is not a cursor name
Cause: The identifier in a CURRENT OF clause names an object other than a cursor.
Action: Check the spelling of the identifier. Make sure that it names the cursor in the DELETE or UPDATE statement and that it names the cursor itself, not a FOR-loop variable.
PLS-00414: no column 'string' in table
Cause: A table name or alias was used to qualify a column reference, but the column was not found in that table. Either the column was never defined or the column name is misspelled.
Action: Confirm that the column was defined and check the spelling of the column name.
PLS-00415: 'string' is an OUT parameter and cannot appear in a function
Cause: An OUT or IN OUT formal parameter was used in a function specification.
Action: None
PLS-00416: The third argument of DECODE cannot be NULL
Cause: The third argument of DECODE is NULL.
Action: Enter an argument with a proper type and value.
PLS-00417: unable to resolve "string" as a column
Cause: A database table, view, or column was specified in a SQL statement that does not exist, or the privileges required to access the table or view were not granted.
Action: Check the spelling of the table (or view) and column names; make sure the table and columns exist. If necessary, ask the DBA to grant the privileges required to access the table.
PLS-00418: array bind type must match PL/SQL table row type
Cause: A host array was passed (by an Oracle Precompiler program, for example) to a PL/SQL subprogram for binding to a PL/SQL table parameter. However, the datatypes of the array elements and PL/SQL table rows are incompatible. So, the binding failed.
Action: Change the datatype of the array elements or PL/SQL table rows to make the datatypes compatible.
PLS-00419: reference to remote attribute not permitted
Cause: An attempt was made to reference a remote cursor attribute, which is not allowed. For example, the code might look like IF SQL%NOTFOUND@newyork THEN ...
Action: Do not try to reference a remote cursor attribute.
PLS-00420: can't call builtin routines remotely
Cause: An attempt was made to call a built-in PL/SQL function remotely, which is not allowed. For example, the code might look like my_sqlerrm := SQLERRM@newyork; or INSERT INTO emp VALUES (my_empno, STANDARD.RTRIM@newyork(my_ename), ...);
Action: Always call built-in functions locally; never specify a database link.
PLS-00421: circular synonym 'string'
Cause: Directly or indirectly, a synonym was defined in terms of itself, creating a circular definition.
Action: Redefine the synonyms to eliminate the circular definition.
PLS-00422: no PL/SQL translation for the bindtype given for this bind variable
Cause: A host variable was passed (by an Oracle Precompiler program, for example) to PL/SQL for binding. However, its datatype is not compatible with any PL/SQL datatype. So, the binding failed.
Action: Change the datatype of the host variable to make it compatible with a PL/SQL datatype.
PLS-00423: ORDER BY item must be the number of a SELECT-list expression
Cause: A column alias was used in the ORDER BY clause of a SELECT statement that uses a UNION, INTERSECT, or MINUS set operator. This is not allowed. In such cases, expressions in the ORDER BY clause must be unsigned integers that designate the ordinal positions of select-list items.
Action: Change the alias in the ORDER BY clause to an unsigned integer that designates the ordinal position of the select item in question.
PLS-00424: RPC defaults cannot include Package State
Cause: An attempt was made to call a remote subprogram whose defaulted parameters depend on package state, which is not allowed. When calling remote subprograms, the actual parameters must be passed explicitly if the corresponding formal parameters depend on package state.
Action: Call the remote subprogram by passing each actual parameter explicitly.
PLS-00425: in SQL, function argument and return types must be SQL type
Cause: When a cursor variable was declared as the formal parameter of a
Action: Change the parameter mode from OUT to IN or IN OUT.
PLS-00427: RPC defaults cannot use builtins when versions of STANDARD differ
Cause: An attempt was made to call a remote subprogram whose defaulted parameter value is calculated using a builtin operation. If the calling system uses a different version of package STANDARD than does the called system, a defaulted expression must be either a simple numeric or string literal, NULL, or a direct call to a user-written function.
Action: Call the remote subprogram by passing each actual parameter value explicitly.
PLS-00428: an INTO clause is expected in this SELECT statement
Cause: The INTO clause of a SELECT INTO statement was omitted. For example, the code might look like SELECT deptno, dname, loc FROM dept WHERE ... instead of SELECT deptno, dname, loc INTO dept_rec FROM dept WHERE ... In PL/SQL, only a subquery is written without an INTO clause.
Action: Add the required INTO clause.
PLS-00429: unsupported feature with RETURNING clause
Cause:

- INTO clause and RETURNING clause cannot be use in the same statement

- RETURNING clause is currently not supported for object type columns, LONG columns, records, %rowtypes, remote tables and INSERT with subquery. This is as ORA-28815.

Action: Use separate select statement to get the values.
PLS-00430: FORALL iteration variable string is not allowed in this context
Cause: FORALL iteration variable can only be used as a subscript. It cannot be used directly or as a part of an expression.
Action: Use FORALL variable only as a collection subscript.
PLS-00431: bulk SQL attributes must use a single index
Cause: More than one index specified to access SQL bulk attribute.
Action: Use a single index of integer datatype.
PLS-00432: implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements
Cause: SELECT statement contains both the FORALL and BULK COLLECT INTO phrases.
Action: Dn not use FORALL and BULK COLLECT INTO together in SELECT statements.
PLS-00433: inconsistent package STANDARD
Cause: PL/SQL compiler could not find the entries (such as type declarations) that should exist in the package STANDARD.
Action: Make sure that the correct version of package STANDARD is available in the current Oracle database, then retry compilation.
PLS-00434: record field has unsupported type: "string"
Cause: An attempt was made to use an unsupported type for a record field. In this release, the use of the SQL92 datetime types (time, timestamp, time with time zone, timestamp with time zone, interval year to month, interval day to second) are not supported in record fields.
Action: Use only supported types for record fields.
PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL
Cause: The DML (SELECT/INSERT/DELETE/UPDATE) statement inside the FORALL statement does not contain BULK IN-BIND variables.
Action: The DML (SELECT/INSERT/DELETE/UPDATE) statement inside the FORALL statement must contain BULK IN-BIND variables.
PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND table of records or objects
Cause: table(bulk_index).field is not supported at run-time.
Action: Use FOR loop with instead of the FORALL DML statement (MERGE/INSERT/DELETE/UPDATE).
PLS-00437: FORALL bulk index cannot be used in string clause
Cause: RETURNING table(bulk_index) is not supported.
Action: Use RETURNING BULK COLLECT instead
PLS-00438: value in LIMIT clause: 'string' use is invalid
Cause: The evaluation value in the LIMIT clause of a bulk fetch was found in an inappropriate context. For example, the following statement is illegal because the LIMIT clause in a bulk fetch expects a numeric value. FETCH c1 BULK COLLECT INTO var_tab LIMIT '22333'; -- illegal
Action: Change the expression of the LIMIT clause so that the evaluation result is compatible to a numeric value.
PLS-00439: A LIMIT clause must be used within a BULK FETCH
Cause: A LIMIT clause is used within a non-bulk fetch
Action: Do not use a LIMIT clause when a non-bulk fetch is used.
PLS-00440: FORALL bulk IN-bind variables cannot be used here
Cause: A reference to a FORALL statement's bulk IN-bind variable was found in a context in which it is not permitted. For example, such variables are not permitted in expressions in the USING clause of a dynamic SQL statement: forall j in 1..Users.Count() execute immediate ' insert into System_Users(Username) values :U' using Upper(Users(j));
Action: In the case described above, move the expression from the USING clause into the SQL statement: forall j in 1..Users.Count() execute immediate ' insert into System_Users(Username) values Upper(:U)' using Users(j);
PLS-00441: EXIT/CONTINUE statement may have a label here; 'string' is not a label
Cause: The specified name was not a label. An EXIT or CONTINUE statement does not require a label, but when the optional name appears, it must be a label.
Action: Check the spelling of the name. Make sure that the name is the label of a loop in which the EXIT or CONTINUE statement is nested. If a label is not needed for this statement, delete the name.
PLS-00442: CONTINUE statement may not have the prefix STANDARD
Cause: The procedure CONTINUE appears in STANDARD but that procedure may not be called either with its name alone or with the prefix STANDARD. It exists only to help in analysis of the CONTINUE statement.
Action: If a CONTINUE statement is intended, remove the prefix. If some other procedure was intended, check the spelling of the prefix and of the procedure name.
PLS-00450: a variable of this private type cannot be declared here
Cause: A variable declaration uses a type that is declared PRIVATE in some other compilation unit.
Action: Do not use this type in a PRIVATE variable declaration.
PLS-00452: Subprogram 'string' violates its associated pragma
Cause: A packaged function cannot be called from SQL statements unless its purity level is asserted by coding a RESTRICT_REFERENCES pragma in the package specification. The pragma, which is used to control side effects, tells the PL/SQL compiler to deny the packaged function read/write access to database tables, public packaged variables, or both. A SQL statement that violates the pragma will cause a compilation error.
Action: Raise the purity level of the function, or relax the pragma restrictions.
PLS-00453: remote operations not permitted on object tables or user-defined type columns
Cause: A reference to a remote object tables or user-defined type column was found.
Action: Do not refer to it.
PLS-00454: with a returning into clause, the table expression cannot be remote or a subquery
Cause: A reference to a remote table or subquery was found in a sql statement with a returning into clause.
Action: Do not refer to it, or do use a subsequent select statement.
PLS-00455: cursor 'string' cannot be used in dynamic SQL OPEN statement
Cause: dynamicly OPEN a REF CURSOR that has RETURN type. However, only REF CURSOR without RETURN type can be OPEN'ed by an embebded dynamic OPEN statement.
Action: define a REF CURSOR without return type, and use it in the statement.
PLS-00456: item 'string' is not a cursor
Cause: the given variable is not a cursor and therefore cannot be OPEN'ed or FETCH'ed from.
Action: check the spelling and declaration for the given variable.
PLS-00457: expressions have to be of SQL types
Cause: an expression of wrong type is in USING or dynamic RETURNING clause. In USING or dynamic RETURNING clause, an expression cannot be of non-SQL types such as BOOLEAN, INDEX TABLE, and record.
Action: change the expression type to a SQL type.
PLS-00458: subprogram 'string' cannot be called from a REPEATABLE subprogram
Cause: The subprogram is not REPEATABLE and cannot be called from a REPEATABLE subprogram.
Action: delete the call or delete REPEATABLE.
PLS-00459: this feature is not allowed in REPEATABLE subprogram
Cause: Having one of the followings feature in the REPEATABLE subprogram: dynamic SQL statements or autonomous transaction.
Action: delete the statements or delete REPEATABLE.
PLS-00460: REPEATABLE subprogram 'string' has to be RNDS, WNDS, RNPS, and WNPS
Cause: Repeatable subprogram can neither read database state (RNDS), write database state (WNDS), read package state (RNPS), nor write package state (WNPS).
Action: make the subprogram to be RNDS, WNDS, RNPS, and WNPS or delete REPEATABLE
PLS-00461: mismatch REPEATABLE information between specification and body of 'string'
Cause: REPEATABLE is declared at the subprogram's specification, but not at its body, or vice versa.
Action: make sure both specification and body are declared as REPEATABLE
PLS-00462: nested subprogram 'string' has to be REPEATABLE
Cause: the nested subprogram of a REPEATABLE subprogram is not declared as REPEATABLE. If a subprogram is REPEATABLE, all of its nested subprograms has to be declared as REPEATABLE.
Action: declared the nested subprogram as REPEATABLE
PLS-00483: exception 'string' may appear in at most one exception handler in this block
Cause: An exception appears in two different WHEN clauses (that is, two different exception handlers) in the exception-handling part of a PL/SQL block or subprogram.
Action: Remove one of the references to the exception.
PLS-00484: redundant exceptions 'string' and 'string' must appear in same exception handler
Cause: Using the EXCEPTION_INIT pragma, different exceptions were initialized to the same Oracle error number; then, they were referenced in different exception handlers within the same exception-handling part. Such references conflict.
Action: Remove one of the exceptions or initialize it to a different Oracle error number.
PLS-00485: in exception handler, 'string' must be an exception name
Cause: An identifier not declared as an exception appears in an exception handler WHEN clause. Only the name of an exception is valid in a WHEN clause.
Action: Check the spelling of the exception name and make sure the exception was declared properly.
PLS-00486: select list cannot be enclosed in parentheses
Cause: In a SELECT statement, the select list was enclosed in parentheses, as in: SELECT (deptno, dname, loc) FROM dept INTO ... This breaks the rules of SQL syntax. Parentheses are not required because the keywords SELECT and FROM delimit the select list.
Action: Remove the parentheses enclosing the select list.
PLS-00487: Invalid reference to variable 'string'
Cause: A variable was referenced in a way that is inconsistent with its datatype. For example, a scalar variable might have been mistakenly referenced as a record, as follows: DECLARE CURSOR emp_cur IS SELECT empno, ename, sal FROM emp; emp_rec emp_cur%ROWTYPE; my_sal NUMBER(7,2); BEGIN ... total_sal := total_sal + my_sal.sal; -- invalid ...
Action: Check the spelling of the variable name. Make sure the variable was declared properly and that the declaration and reference are consistent regarding datatype.
PLS-00488: 'string' must be a type
Cause: The datatype specifier in a declaration or expression does not designate a legal type. For example, the %TYPE attribute might not have been added to a declaration, as in DECLARE my_sal emp.sal%TYPE; my_ename emp.ename; -- missing %TYPE ... When declaring a constant or variable, to provide the datatype of a column automatically, use the %TYPE attribute. Likewise, when declaring a record, to provide the datatypes of a row automatically, use the %ROWTYPE attribute.
Action: Make sure the datatype specifier designates a legal type. Remember to use the %TYPE and %ROWTYPE attributes when necessary.
PLS-00489: invalid table reference: 'string' must be a column in this expression
Cause: In a query, a select-list item refers to a table in the FROM clause but not to a database column.
Action: Check the spelling of the column names, make sure each column in the select list refers to a table in the FROM clause, then re-execute the query.
PLS-00490: illegal statement
Cause: A constant, variable, function call, or incomplete statement was used where a statement was expected. For example, instead of calling a function from an expression, it might have been called as a statement (as if it were a procedure).
Action: Check the statement, making sure that its commands, identifiers, operators, delimiters, and terminator form a complete and valid PL/SQL statement.
PLS-00491: numeric literal required
Cause: A constant or variable was used where a numeric literal is required. For example, the code might look like my_ename VARCHAR2(max_len); instead of my_ename VARCHAR2(15); When specifying the maximum length of a VARCHAR2 variable, an integer literal must be used.
Action: Replace the identifier with a numeric literal.
PLS-00492: variable or constant initialization may not refer to functions declared in the same package
Cause: If a package spec p declares a function f, that function may not be used in any variable declarations in that same package spec. This is because of a circular instantiation problem: in order to fully instantiate the package spec, the variable must be initialized. To initialize the variable, the function body code in the package body must be executed. That requires that the package body be instantiated. However, the package body cannot be instantiated until the package spec is fully instantiated.
Action: Remove the reference to the function from the variable initialization. A technique which often works is to move the variable initialization from the variable declaration (in the package spec) to the package body initialization block.
PLS-00493: invalid reference to a server-side object or function in a local context
Cause: A reference to a server-side object (e.g. a table column) or function (a group function such as SUM, AVG, MIN, MAX, ... ) was found in a context where only PL/SQL objects may be present (such as within the parameter list of a local function or as the index of a (local) PL/SQL table.)
Action: Rewrite the offending statement; or (if a local function call is the problem context), make the function non-local (either packaged or top- level.)
PLS-00494: coercion into multiple record targets not supported
Cause: The INTO list of a SELECT or FETCH specified more than a single record- type target and the column types required coercion into a record to match the INTO list. This is type checked as correct, but not yet supported.
Action: Create a new record type to hold all of the column types or code the SELECT with an INTO target for every source column.
PLS-00495: too many columns in SELECT...INTO statement after bursting record targets
Cause: Type checking indicated the columns in a SELECT or FETCH were being collected into a record in the INTO list. The record was burst into its fields. There were not enough fields in the record for each of the columns.
Action: Change the number of columns or the record variable(s) in the INTO clause so that they match.
PLS-00496: too few columns in SELECT...INTO statement after bursting record targets
Cause: Type checking indicated the columns in a SELECT or FETCH were being collected into a record in the INTO list. The record was burst into its fields. There were not enough columns to fill all of the fields in the record.
Action: Change the number of columns or the record variable(s) in the INTO clause so that they match.
PLS-00497: cannot mix between single row and multi-row (BULK) in INTO list
Cause: - When BULK syntax (e.g. BULK COLLECT INTO) is used to retrieve data, every variable in the INTO list has to be of type that is a collection of the type of the corresponding column.

- When BULK is NOT used, every variable in the INTO list has to be of compatible type with the corresponding column.

Action: Change the INTO list so that all variables have correct data types
PLS-00498: illegal use of a type before its declaration
Cause: A variable or constant was declared to be of a type whose declaration appears later in the compilation unit; or, a type or subtype was declared in terms of another type whose declaration appears later in the compilation unit.
Action: Ensure that the type declaration preceeds its use in the variable/ constant/type declaration.
PLS-00499: coercion into collection of records not supported
Cause: A SELECT or FETCH may specify a column list to be coerced into a variable which is a collection of records. This is type checked as correct, but not yet supported because of the implicit layout change required.
Action: Express the SELECT with an object constructor around the columns and use a collection of objects as an INTO variable. Or, build the collection one row at a time coercing each row into a record which happens to be an element. Or, use a record of collections.
PLS-00500: invalid operator binding
Cause: An operator binding fucntion cannot be found in the specified scope.
Action: Provide the correct number and types of parameters for the operator binding fucntion. Or, specify the correct names for schema, package, or type containing the operator binding fucntion.
PLS-00503: RETURN <value> statement required for this return from function
Cause: In a function body, a RETURN statement was used that contains no expression. In procedures, a RETURN statement contains no expression because the statement simply returns control to the caller. However, in functions, a RETURN statement must contain an expression because its value is assigned to the function identifier.
Action: Add an expression to the RETURN statement.
PLS-00504: type string_BASE may not be used outside of package STANDARD
Cause: In a declaration, the datatype NUMBER_BASE (for example) was mistakenly specified. The datatypes CHAR_BASE, DATE_BASE, MLSLABEL_BASE, and NUMBER_BASE are for internal use only.
Action: Specify (for example) the datatype NUMBER instead of NUMBER_BASE.
PLS-00505: User Defined Types may only be defined as PLSQL Tables or Records
Cause: An attempt was made to define a type other than TABLE or RECORD, but these are the only user- defined types allowed in this release of PL/SQL. For example, the following type definition is illegal: TYPE Byte IS INTEGER(2); -- illegal
Action: Remove the type definition, or revise it to specify a TABLE or RECORD type.
PLS-00506: User Defined Constrained Subtypes are disallowed
Cause: An attempt was made to define a constrained subtype, but only unconstrained subtypes are allowed in this release of PL/SQL. For example, the following type definition is illegal: SUBTYPE Acronym IS VARCHAR2(5); -- illegal
Action: Remove the illegal type constraint.
PLS-00507: a PLSQL Table may not contain a table or a record with composite fields
Cause: In a TABLE type definition, a nested record type was specified as the element type. This is not allowed. All fields in the record must be scalars.
Action: Remove the TABLE type definition, or replace the nested record type with a simple record type.
PLS-00508: The expression in a RETURN statement cannot be a type
Cause: A datatype specifier was used instead of an expression in the RETURN statement of a user-defined function, as shown in the example below. Do not confuse the RETURN statement, which sets the function identifier to the result value, with the RETURN clause, which specifies the datatype of the result value. FUNCTION credit-rating (acct_no NUMBER) RETURN BOOLEAN IS BEGIN ... RETURN NUMBER; -- should be an expression END;
Action: Replace the datatype specifier in the RETURN statement with an appropriate expression.
PLS-00509: Implementation Restriction : Pass a returned record to a temporary identifier before selecting a field
Cause: Illegal syntax was used to call a parameter-less function that returns a record or a PL/SQL table of records. When calling a function that takes parameters and returns a record, you use the following syntax to reference fields in the record: function_name(parameters).field_name However, you cannot use the syntax above to call a parameter-less function because PL/SQL does not allow empty parameter lists. That is, the following syntax is illegal: function_name().field_name -- illegal; empty parameter list You cannot just drop the empty parameter list because the following syntax is also illegal: function_name.field_name -- illegal; no parameter list.
Action: Declare a local record or PL/SQL table of records to which you can assign the function result, then reference its fields directly.
PLS-00510: Float cannot have scale
Cause: When a FLOAT variable was declared, its precision and scale were specified, as shown in the following example: DECLARE Salary FLOAT(7,2); However, a scale for FLOAT variables cannot be specified; only a precision can be specified, as in salary FLOAT(7);
Action: Remove the scale specifier from the declaration, or declare a NUMBER variable instead.
PLS-00511: a record may not contain a PL/SQL table of records
Cause: n a RECORD definition, one of the fields was declared as a PL/SQL table of records. This is not allowed. A record can be the component of another record (that is, records can be nested), but a PL/SQL table of records cannot be the component of a record.
Action: Remove the field declaration, or revise it to specify a simple record type.
PLS-00512: Implementation Restriction: 'string': Cannot directly access remote package variable or cursor
Cause: An attempt was made to reference a remote packaged variable or cursor. This is not allowed. Instead, add to the remote package a function that returns the value of the variable or cursor.
Action: Remove the illegal reference.
PLS-00513: PL/SQL function called from SQL must return value of legal SQL type
Cause: In a SQL statement, do not call a PL/SQL function having a return type that can not be handled by SQL. For example, type BOOLIAN, records and indexed-tables are not supported by SQL and functions returneing such values can not be called from SQL.
Action: None
PLS-00514: INSERT statement with REF INTO clause requires a typed table
Cause: This INSERT statement provides REF INTO clause, which is only legal when the table specified in the INTO clause is an object table.
Action: None
PLS-00515: The type of the REF INTO variable 'string' must be REF to the table's type
Cause: In INSERT statement with REF INTO clause, the type of the data item must be REF to the type of the table used in INTO clause.
Action: None
PLS-00516: Type mismatch between object table and value 'string' in INSERT statement.
Cause: In the INSERT statement operating on typed tables (tables of objects), the type of a non-aggregate value did not match the object type of the table.
Action: None
PLS-00517: Type mismatch between a select list element 'string' and corresponding table column in INSERT statement with a subquery
Cause: In an INSERT statement with subquery, at lease one of the elements of the select list was not type-compatible with the corresponding column of the table in the INTO clause. This error indicates that the subquery should be rewritten to match the structure of the target table.
Action: None
PLS-00518: This INSERT statement requires VALUES clause containing a parenthesised list of values
Cause: A VALUES clause was entered without a list of SQL data items in parentheses. In all INSERT statements with an explicit column list, the VALUES clause must contain a list of SQL data items in parentheses. For example: INSERT INTO my_tab (a,b,c) VALUES (1,2,my_variable);
Action: Rewrite the statement to include a list of SQL data items in parentheses.
PLS-00519: This INSERT statement requires a VALUES clause containing an object type expression, not a list of values
Cause: In an INSERT statement with typed tables, an aggregate was used when an object type item was expected.
Action: Replace the aggregate with an object constructor or other object type expression.
PLS-00520: MAP methods must be declared without any parameters other than (optional) SELF.
Cause: A MAP member function was declared with a parameter. Map member functions can have only one parameter: the default SELF parameter. Map methods must be declared without any parameters. The compiler adds the SELF parameter.
Action: Remove the parameter from the map member function.
PLS-00521: ORDER methods must be declared with 1 (one) parameter in addition to (optional) SELF.
Cause: An order member function was declared without the user-specified parameter. Order member functions have two parameters, one is the default SELF parameter which is added by the compiler. the second parameter is added by the user and must declare an order method which must be the same type as the containing object type.
Action: Check and correct the way the parameter is specified.
PLS-00522: MAP methods must return a scalar type.
Cause: The MAP member function was written such that it returns something other than a scalar type.
Action: Rewrite the MAP function such that it returns a scalar type.
PLS-00523: ORDER methods must return an INTEGER.
Cause: An order member function was written such that it returns something other than an integer type.
Action: Rewrite the ORDER method such that it returns an integer type.
PLS-00524: The parameter type in an ORDER method must be the containing object type.
Cause: An order member function was declared without the user- specified parameter. Order member functions have two parameters, one is the default SELF parameter which is added by the compiler. the second parameter is added by the user and must declare an order method which must be the same type as the containing object type.
Action: Check and correct the way the parameter is specified.
PLS-00525: Within SQL statements, only equality comparisons of objects are allowed without a map or order function.
Cause: A map or order function was not provided for a relational comparison. Only equality comparisons may be used when a map or order function is not supplied.
Action: Supply either a map or order function for the object. Otherwise change the program to use only equality comparisons.
PLS-00526: A MAP or ORDER function is required for comparing objects in PL/SQL.
Cause: Within stand alone PL/SQL, an attempt was made to compare objects without a map or order function.
Action: Provide a map or order function and retry the operation.
PLS-00527: MAP or ORDER functions require a PRAGMA RESTRICT_REFERENCES specifying :WNDS,WNPS,RNPS,RNDS.
Cause: Either a PRAGMA RESTRICT_REFERENCES was not specified or it was specified without one of the following: WNDS, WNPS, RNPS, or RNDS.
Action: Add or correct the PRAGMA and retry the operation.
PLS-00528: The parameters to an ORDER function must have IN mode
Cause: You declared parameter to an ORDER function to have OUT or IN OUT mode.
Action: Correct the parameter to use IN mode only.
PLS-00529: Bad column name string in INSERT statement (must be an identifier)
Cause: In an INSERT statement, an attempt was made to use a column name that is not an identifier. In any INSERT statement with explicit column list a column name must be a simple identifier.
Action: Rewrite the INSERT statement, using a simple identifier for the column name.
PLS-00530: Illegal type used for object type attribute: 'string'.
Cause: An attempt was made to use an invalid type for an object type attribute.
Action: Use only supported types for the object type attribute.
PLS-00531: Unsupported type in a VARRAY or TABLE type: 'string'.
Cause: An attempt was made to use an unsupported type in a VARRAY or TABLE type.
Action: Use only supported types in a VARRAY or TABLE type.
PLS-00532: Target of REF must be a complete or incomplete object type.
Cause: The target of a REF can only be a complete or an incomplete object type.
Action: If a REF is to be used, change the type; otherwise, remove the REF.
PLS-00533: Tables of non_queryable types are not supported.
Cause: An attempt was made to create a table of a type which cannot be queried. Tables of such types are not supported.
Action: Create an object type containing the non-queryable type. Then create a table of the object type.
PLS-00534: A Table type may not contain a nested table type or VARRAY.
Cause: An attempt was made to do one of the following: define a table type which contained nested collection types. or define an object table that has (perhaps nested) another table type or VARRAY type.
Action: Check the table definitions to be sure that they do not contain nested tables or VARRAYs.
PLS-00535: A VARRAY type may not contain a NESTED TABLE, VARRAY or LOB
Cause: An attempt was made to do one of the following: define a VARRAY type containing a nested collection type or LOB or define a VARRAY type of an object type that has a nested attribute which is one of NESTED TABLE, VARRAY or LOB type.
Action: Check the VARRAY definitions to be sure that they do not contain nested colection types, LOBs or nested attributes.
PLS-00536: Navigation through REF variables is not supported in PL/SQL.
Cause: The expression of the form refvar.field was entered. This is not supported in PL/SQL, ver 8.0.
Action: None
PLS-00537: A VARRAY must have a positive limit
Cause: A VARRAY type was declared with a non-positive limit, for example VARRAY(0).
Action: Declare the VARRAY with a positive limit and retry the operation.
PLS-00538: subprogram or cursor 'string' is declared in an object type specification and must be defined in the object type body
Cause: The specified subprogram is declared in an object type's specification, but is not defined in the object type body.
Action: Define the subprogram in the object type body, or remove the declaration from the specification.
PLS-00539: subprogram 'string' is declared in an object type body and must be defined in the object type specification
Cause: The specified subprogram is declared in an object type's body, but is not defined in the object type's specification. Notice cursor bodies can exist without a specification.
Action: Define the subprogram in the object type's specification, or remove the declaration from the body.
PLS-00540: object not supported in this context.
Cause: An object was declared inside a local scope (Function, Procedure, or anonymous block), or in a package scope which is not supported.
Action: Declare the type in a global or data base scope.
PLS-00541: size or length specified is too large.
Cause: A length or size that is too large was specified for a data item.
Action: Specify a smaller value and retry the operation.
PLS-00542: CLOB and NCLOB cannot use varying-width character sets in the server
Cause: A server type is being created with an embedded CLOB or NCLOB atttribute which uses a varying-width character set.
Action: Use VARCHAR2 instead of CLOB, or use a fixed-width character set.
PLS-00543: a PLSQL Table may not contain a nested table type or VARRAY.
Cause: An attempt was made to define a PLSQL table that contained a (possibly deeply) nested table type or VARRAY. Nested collection types are not supported.
Action: Remove the nested table type or VARRAY from the table. Then retry the operation.
PLS-00546: SELF may not be declared as a REF parameter.
Cause: SELF was declared as a ref parameter to a member function or procedure. SELF is not supported as a REF.
Action: Redeclare SELF as a value parameter.
PLS-00548: invalid use of operator.
Cause: A name of an operator is used as a qualifier or appears outside from sql context.
Action: Eliminate the use of operator name as a qualifier or place it in a sql clause.
PLS-00550: character set specification is not allowed for this type
Cause: A character set specification was made on a type that does not require one.
Action: Remove the character set specification, or change the type.
PLS-00551: character set ANY_CS is only allowed on a subprogram parameter
Cause: The character set ANY_CS was specified when it is not allowed.
Action: Change or remove the character set specification.
PLS-00552: flexible character set is not allowed on component element
Cause: ANY_CS or %CHARSET was used to reference an ANY_CS parameter which is not a CHAR, VARCHAR2, or CLOB type. ANY_CS or %CHARSET is not allowed for fields of a record , object, elements of a collection, etc.
Action: Change or remove the character set specification.
PLS-00553: character set name is not recognized
Cause: An unrecognized name appears in a character set specification.
Action: Change or remove the character set specification.
PLS-00554: character set has already been determined
Cause: A redundant or conflicting character set was specified.
Action: Remove the CHARACTER SET specification, or change the character set specified.
PLS-00555: default expressions are not allowed for SQL operators
Cause: A default expression has been specified for a SQL operator.
Action: Eliminate the default expression from the operator.
PLS-00560: character set mismatch
Cause: An expression was used that has the wrong character set for this context.
Action: Adjust the expression, using TRANSLATE(... USING ...) or by rethinking the logic.
PLS-00561: character set mismatch on value for parameter 'string'
Cause: An expression was used that contains an incorrect character set. The actual argument has a character set conflict. If a default argument value is being used, it might be in conflict with some actual argument that must have the same character set.
Action: Adjust the expression, using TRANSLATE(... USING ...) or change the character set.
PLS-00562: a function must return a type.
Cause: The current function was definied to return something other than a data type.
Action: Make sure the function is returning a data type.
PLS-00563: illegal use of CAST expression
Cause: CAST (in PLSQL) was used outside of a DML scope.
Action: Do not use CAST outside DML statements.
PLS-00564: lob arguments are not permitted in calls to remote server
Cause: use of lob argument in call to remote server
Action: Do not use LOBs in call to remote server
PLS-00565: string must be completed as a potential REF target (object type)
Cause: Incomplete library units that are potential targets of REF dependencies must be completed so that they continue to remain potential targets of REF dependencies (since there might be library units with REF dependencies on this library unit). Potential REF targets include complete and incomplete object types. This error happened because an attempt was made to complete a potential REF target as something other than a potential REF target.
Action: Use another name for this library unit, or drop the original incomplete library unit.
PLS-00566: type name "string" cannot be constrained
Cause: A lob, date, boolean, rowid, or mlslabel type was constrained with a length specification. For example: X BLOB(5);
Action: Remove the constraint.
PLS-00567: cannot pass NULL to a NOT NULL constrained formal parameter
Cause: You attempted to pass NULL to a NOT NULL constrained parameter.
Action: Pass a NOT NULL expression instead.
PLS-00568: cannot access rows from a non-nested table item
Cause: You attempted to use TABLE expression, from a non-nested table
Action: pass the correct parameter
PLS-00569: numeric overflow or underflow
Cause: A constant literal is either too large or too small to fit in an Oracle number
Action: Change the value of the literal
PLS-00570: different number of columns in the multiset and cast expressions
Cause: Number of columns in the collection returned by MULTISET and the number of columns for the CAST type don't match. For example: create type tab_obj as object (n number); create type tab1 as table of tab_obj; create table tab2 (col1 number, col2 number); select CAST(MULTISET(select col1, col2 from tab2) as tab1) from tab2;
Action: None
PLS-00571: method access through data base link not yet supported on client side
Cause: Remote link is used with on client side
Action: Create a dummy function to call symbolic link on server side or wiat till it is implemented
PLS-00572: improper constraint form used
Cause: "number" types cannot have a range. user-defined aggregate types and integer types cannot have scale or precision specified. Example: "x number(5,3)" is acceptable but "x number range 1..10" is not.
Action: Remove the constraint
PLS-00573: cannot constrain scale, precision, or range of an anchored type declaration
Cause: A variable declared with %TYPE or %ROWTYPE cannot have a scale, precision, or range constraint. Example: x y%TYPE(10) is not acceptable. It is legal to add "NOT NULL" or non-conflicting CHARACTER SET constraints to anchored type declarations.
Action: Remove the constraint or use a type name instead of an anchored type.
PLS-00580: supertype must be an object type
Cause: An attempt was made to declare an object type to have a supertype, but the specified supertype was not itself an object type. Object types can inherit only from other object types.
Action: Remove the supertype specification, or change it to refer to an object type. If the declaration appears correct, make sure the supertype has compiled correctly.
PLS-00581: inheritance is not supported for opaque types
Cause: An attempt was made to declare an opaque type with a supertype.
Action: Remove the supertype specification.
PLS-00582: attribute declarations are not allowed in opaque types
Cause: An attempt was made to declare an attribute in an opaque type.
Action: Remove the attribute declaration.
PLS-00583: size must be specified if opaque type is fixed-length
Cause: An attempt was made to declare a fixed-length opaque type without specifying an explicit size.
Action: Specify an explicit size, or change the declaration to be varying-length.
PLS-00584: size of an opaque type must be between 1 and 4000 bytes
Cause: An attempt was made to specify an explicit size for an opaque type, but the specified size was out of the valid range.
Action: Change the explicit size to be between 1 and 4000 bytes, or change the declaration to be varying-length without an explicit size.
PLS-00585: declared support library for opaque type is not a library
Cause: An attempt was made to name a support library for an opaque type, but the name refers to an object that is not a library.
Action: Change the declaration to name a valid library.
PLS-00586: a static method cannot declare a parameter named SELF
Cause: An attempt was made to name a parameter SELF when declaring a static method. SELF is reserved as a parameter name in methods, to hold the object instance on which the method is applied. A parameter named SELF is not allowed in static methods because static methods do not apply to a particular object instance.
Action: Change the name of the parameter in the declaration.
PLS-00587: a static method cannot be invoked on an instance value
Cause: An attempt was made to use an object instance value, not a typename, as the qualifier of the name of a method invocation, but only a typename can be used as the qualifier when calling a static method.
Action: Use the typename, not an object instance value, to qualify the name of a method if the method is static.
PLS-00588: unqualified instance attribute references allowed only in member methods
Cause: An attempt was made to use the name of an object instance attribute in the body of a static method, or in an initialization default value on another attribute. If the instance attribute is not qualified with a particular object instance that supplies a value, the instance attribute can be named only when it is inside a member method.
Action: Qualify the attribute reference with the name of an object value, or change the containing method to a member method rather than a static method.
PLS-00589: no attributes found in object type "string"
Cause: Table of non adt type is defined.
Action: Table of type should be of ADT type only
PLS-00590: attempting to create a subtype UNDER a FINAL type
Cause: An attempt was made to create a subtype UNDER a FINAL type.
Action: Avoid deriving a subtype from this FINAL type.
PLS-00591: this feature is not supported in client-side programs
Cause: One of the following features was used in a wrong context: pragma AUTONOMOUS_TRANSACTION, dynamic SQL statements, (e.g. EXECUTE IMMEDIATE), and bulk binds. These listed features can only be used in server-side programs but not client-side programs.
Action: Remove it or define a server-side subprogram to do the work and call the subprogram from the client.
PLS-00592: the type of a object table must be an object type
Cause: You have defined a typed-table of a non-object type.
Action: Replace the non-object type with an object-type.
PLS-00593: default value of parameter "string" in body must match that of spec
Cause: The default value initialization of a parameter in a subprogram body contained in a package body did not match that of the corresponding subprogram specification in the corresponding package specification.
Action: Change the default initialization of the parameter in body to match that of spec.
PLS-00594: the SELF parameter can be declared only as IN or as IN OUT
Cause: The SELF parameter was declared as an OUT parameter.
Action: Declare the SELF parameter as either an IN or an IN OUT parameter.
PLS-00595: the TABLE operator is not allowed in this context
Cause: This feature is not yet implemented.
Action: Don't use weak ref cursors with bulk binds.
PLS-00597: expression 'string' in the INTO list is of wrong type
Cause: This exception is raised for the following errors:

- the expression in INTO clause of OPEN or RETURNING statement is neither of legal SQL datatypes nor of PL/SQL RECORD datatype

- a collection of records is used in INTO clause of OPEN or RETURNING statement.

- a record or a collection of records is used in BULK COLLECT INTO

Action: Use expression with correct datatype in the INTO clause
PLS-00598: comparison of object with NULL using "string" is not allowed
Cause: An object is compared with NULL using a relational operator.
Action: Use IS NULL comparison operator.
PLS-00599: SAMPLE percentage must be in the range [0.000001,100)
Cause: The percentage number is not in the range [0.000001,100)
Action: Use a percentage number in the range [0.000001,100)
PLS-00600: SAMPLE cannot be applied to a remote object
Cause: SAMPLE applying to a remote object is not supported
Action: Do not use SAMPLE with a remote object
PLS-00601: partition extended object names may only be used with tables
Cause: User attempted to use a partition-extended object name with an object which is not a table.
Action: Avoid using partition-extended name syntax with objects which are not tables
PLS-00602: CUBE and ROLLUP may appear only in a GROUP BY clause
Cause: User attempted to use the keywords CUBE or ROLLUP outside a GROUP BY clause
Action: Avoid using the keywords CUBE and ROLLUP outside the GROUP BY clause
PLS-00603: GROUPING function supported only with GROUP BY CUBE or ROLLUP
Cause: User attempted to use the GROUPING function without GROUP BY CUBE or GROUP BY ROLLUP
Action: Avoid using the GROUPING function without GROUP BY CUBE or ROLLUP
PLS-00604: aggregate function is not allowed here
Cause: One of the functions, such as AVG, COUNT, MAX, MIN, SUM, STDDEV or VARIANCE, was used in a WHERE or GROUP BY clause
Action: Remove the group function from the WHERE or GROUP BY clause. The desired result may be achieved by including the function in a subquery or HAVING clause.
PLS-00605: set operators are not yet supported as an argument to a MULTISET operator
Cause: A set operator was used in a subquery that was the argument to a MULTISET operator.
Action: Rewrite your SQL statement so that it does not use a set operator in the subquery that is the argument to the MULTISET operator.
PLS-00606: cursor subquery is not supported on client side in this release
Cause: A query that contains a cursor subquery is being used from client side.
Action: Use this feature from serevr side only.
PLS-00607: SQLJ Object Types can have only SQLJ Types as its supertype or subtype
Cause: You were trying to create a SQLJ Object Type under a non-SQLJ Object Type.
Action: Recreate the type as a SQLJ Object Type.
PLS-00608: the value of the USING clause must match that of the supertype
Cause: You were trying to create a SQLJ Object Type with a different value of the USING clause from the USING clause specified in its supertype.
Action: Change the value of the USING clause to match the USING clause in its supertype.
PLS-00609: the OVERRIDING clause is not valid for SQLJ Object Types
Cause: You were trying to a SQLJ Object Type method that override an inherited method.
Action: Change the SQLJ Object Type defintion by removing the OVERRIDING method.
PLS-00610: ROW can be used only once in SET clause of UPDATE statement
Cause: You were trying to use ROW more than once in UPDATE statement.
Action: Remove all the additional ROW in set clause of UPDATE statement.
PLS-00611: right hand side can be only the variables of record type
Cause: with ROW on LHS, only PL/SQL records or %ROWTYPE variables are allowed on right hand side..
Action: Make appropriate changes, so that right hande side should only have variables of record or %ROWTYPE.
PLS-00612: Number of attributes do not match in SET clause
Cause: Number of columns do not match with number of attributes on record type on rhs.
Action: Make sure that number of columns match with the number of attributes in record on rhs.
PLS-00613: only one item is allowed, when using variables of record type
Cause: You are trying to use more than one values in VALUES clause or RETURNING INTO clause, when one of the value is of record type..
Action: Specify only one variable of record type, or don't use variables of record type.
PLS-00614: creating a FINAL NOT INSTANTIABLE type
Cause: An attempt was made to create a FINAL NOT INSTANTIABLE type. No useful operation can be performed with this type.
Action: Avoid using the keywords FINAL and NOT INSTANTIABLE together when creating types.
PLS-00615: type mismatch found at 'string' between CASE operand and WHEN operands
Cause: In a simple CASE statement or expression, the CASE operand and WHEN operands do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the CASE operand and WHEN operands so that their datatypes match. Consider using datatype conversion functions in the CASE operand and/or WHEN operands.
PLS-00616: type mismatch found at 'string' among result expressions in a CASE expression
Cause: In a CASE expression, the result expressions do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the result expressions so that their datatypes match. Consider using datatype conversion functions in the result expressions.
PLS-00617: at least one result in the CASE expression must not be NULL
Cause: All the results in the CASE expression are the literal NULL.
Action: Change at least one result in the CASE expression to be non-NULL.
PLS-00618: type mismatch found at 'string' between operands in a NULLIF expression
Cause: In a NULLIF expression, the two operands do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the operands so that their datatypes match. Consider using datatype conversion functions in the operands.
PLS-00619: the first operand in the NULLIF expression must not be NULL
Cause: The first operand in the NULLIF expression is the literal NULL.
Action: Change the first operand in the NULLIF expression to be non-NULL.
PLS-00620: type mismatch found at 'string' among operands in a COALESCE expression
Cause: In a COALESCE expression, the operands do not match in datatype, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the operands so that their datatypes match. Consider using datatype conversion functions in the operands.
PLS-00621: at least one operand in the COALESCE expression must not be NULL
Cause: All the operands in the COALESCE expression are the literal NULL.
Action: Change at least one operand in the COALESCE expression to be non-NULL.
PLS-00622: range constraints must be between -2147483647 and 2147483647
Cause: The range constraints specified for a pls_integer or binary_integer declaration did not fall between -2147483647 and 2147483647.
Action: Use range constraints between -2147483647 and 2147483647.
PLS-00623: FLOAT precision constraint must be between 1 and 126
Cause: The precision specified for a FLOAT, REAL or DOUBLE PRECISION did not fall between 1 and 126.
Action: Use precision constraints between 1 and 126.
PLS-00624: USING clause must be used with either aggregate or pipelined functions
Cause: USING clause cannot be used with functions that are not declared with AGGREGATE or PIPELINED properties.
Action: Define function body in PL/SQL or some other language (using external callout call specification).
PLS-00625: PARTITION/CLUSTER/ORDER-BY clause can only be used with IN parameters
Cause: A PARTITION/CLUSTER/ORDER-BY clause was used with an OUT or IN OUT ref-cursor parameter.
Action: Change the parameter mode to IN or use some other parameter with the PARTITION/CLUSTER/ORDER-BY clause.
PLS-00626: partitioned/clustered/ordered parameter must be a function argument
Cause: A partitioning or clustering/ordering specification specified on an argument that is not one of the function arguments.
Action: Specify partitioning/clustering/ordering based on the function ref-cursor formal argument.
PLS-00627: 'string' must be a strongly typed ref cursor
Cause: A partitioning or clustering/ordering specification specified on an argument that is not a strongly typed ref cursor.
Action: Specify partitioning/clustering/ordering based on the function ref-cursor formal argument.
PLS-00628: 'string' must be a valid record attribute
Cause: A partitioning or clustering/ordering specification must use only valid record attributes.
Action: Specify partitioning/clustering/ordering based on valid record attributes.
PLS-00629: PIPE statement cannot be used in non-pipelined functions
Cause: A PIPE statement was used in a non-pipelined function.
Action: Use PIPE statement only in pipelined functions.
PLS-00630: pipelined functions must have a supported collection return type
Cause: A pipelined function was specified with an unsupported return type. The following are not supported as return types of pipelined functions:

- non-collections,

- PL/SQL tables,

- associative arrays,

- collections of PL/SQL types: rowid, mlslabel, long, long raw, boolean, binary_integer, pls_integer, string and urowid The following restrictions apply:

- If the return type is a collection of records, then each of the attributes of the record must be a supported type.

- A collection of records must not contain a record type as one of its attributes.

Action: Specify a supported collection type as the pipelined function return type.
PLS-00631: PARTITION-BY and CLUSTER/ORDER-BY clauses must be used with the same function argument
Cause: PARTITION-BY and CLUSTER/ORDER-BY clauses are specified on different function arguments.
Action: Use the same argument in both PARITITON-BY and CLUSTER/ORDER-BY clauses.
PLS-00632: NOT INSTANTIABLE method cannot have a body
Cause: An attempt was made to provide an implementation for a NOT INSTANTIABLE method.
Action: Remove the implementation for the NOT INSTATIABLE method.
PLS-00633: RETURN statement in a pipelined function cannot contain an expression
Cause: A RETURN statement in a pipelined function contains an expression, which is not allowed. Pipelined functions must send back values to the caller by using the PIPE statement.
Action: Remove the expression from the RETURN statement and use a PIPE statement to return values. Else, convert the function into a non-pipelined function.
PLS-00634: type with NOT INSTANTIABLE methods must be declared NOT INSTANTIABLE
Cause: The type being created contains NOT INSTANTIABLE methods, either declared or inherited. The type must be explicitly declared NOT INSTANTIABLE
Action: Explicitly specify the NOT INSTANTIABLE keyword or provide implementations for all the NOT INSTANTIABLE methods.
PLS-00635: method does not override
Cause: The method specification contains the OVERRIDING keyword but the method does not override a method in the ancestor types.
Action: Check the method specification.
PLS-00636: overriding method requires OVERRIDING keyword
Cause: An attempt was made to provide an overriding method specification, but the OVERRIDING keyword was not specified.
Action: Modify the method specification and specify the OVERRIDING keyword.
PLS-00637: FINAL method cannot be overriden or hidden
Cause: An attempt was made to override a FINAL MEMBER method or hide a FINAL STATIC method.
Action: Avoid overriding FINAL MEMBER methods or hiding FINAL STATIC methods
PLS-00638: cannot overload MAP method
Cause: The MAP method does override the inherited one.
Action: Make the specifications match.
PLS-00639: NCHAR/NVARCHAR2 cannot be byte length semantics
Cause: NCHAR/NVARCHAR can only be codepoint length sematics. BYTE qualifiers used with NCHAR is illegal: nc NCHAR(7 BYTE); name NVARCHAR2(10 byte);
Action: Remove BYTE qualifier to make it as codepoint length semantics
PLS-00640: a pipelined function cannot be called from PL/SQL context
Cause: A pipelined function was invoked from a PL/SQL expression.
Action: Use the pipelined function in the FROM clause of a SQL query.
PLS-00641: INTO clause not allowed for this SELECT statement
Cause: A SELECT statement in a cursor definition, an OPEN statement or a cursor FOR loop has an erroneous INTO clause.
Action: Remove the INTO clause.
PLS-00642: local collection types not allowed in SQL statements
Cause: A locally-defined (i.e. not schema level) collection type was used in a SQL statement. The type must be defined in a schema to be accepted in a SQL statement.
Action: Define the collection type in your schema, not inside a PL/SQL subprogram.
PLS-00643: booleans, index tables, records and cursors not allowed in SQL statements
Cause: Items of type boolean, table of foo index by binary_integer, record and static cursors cannot be used in SQL statements.
Action: Remove expressions of these types from the SQL statement.
PLS-00644: character set mismatch found at 'string' among result expressions in a CASE expression
Cause: In a CASE expression, the result expressions do not match in character set, and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the result expressions so that their character sets match.
PLS-00645: character set mismatch found at 'string' among operands in a COALESCE expression
Cause: In a COALESCE expression, the operands do not match in character set and it is unclear which implicit conversion is required to correct the mismatch.
Action: Change the operands so that their character sets match.
PLS-00646: MAP or ORDER method must be defined in the root of the subtype hierarchy
Cause: An attempt was made to define a MAP or ORDER method in a subtype.
Action: Define the MAP or ORDER method in the root of the subtype hierarchy. You can override MAP methods in subtypes.
PLS-00647: attribute by name "string" conflicts with method by same name
Cause: While creating a subtype some attribute name conflicted with a method name.
Action: Use a different name for attribute or method in the type being created.
PLS-00648: type of supertype attribute "string" can not be a subtype or reference to a subtype in this release
Cause: User tried to complete a type, Tsub as a subtype of another type, Tsuper where Tsuper contained an attribute of type Tsub or of type REF to Tsub. This is an implementation restriction.
Action: Change the design of code to not use any type with attribute whose type is of subtype or REF to subtype.
PLS-00649: method "string" can be overridden only once per object type
Cause: User tried to override the method more than once in the same subtype.
Action: Either make this an extra overload by removing the OVERRIDING keyword where the method signature is different. The argument types should be reconsidered otherwise.
PLS-00650: invalid type for PARTITION/CLUSTER/ORDER BY clause
Cause: Uer tried to use invalid type for PARTITION/CLUSTER?ORDER BY clause.
Action: Use legal allowed types.
PLS-00651: implementation type in Aggregate/Table function should be a valid type
Cause: User tried to use some other database object like a package to define implementation type of an aggregate/table function.
Action: Use a valid user defined type as implementation type.
PLS-00652: aggregate functions should have exactly one argument
Cause: User tried to create aggregate function with either 0 or more than one arguments.
Action: Do not create aggregate function with 0 or more than one argument.
PLS-00653: aggregate/table functions are not allowed in PL/SQL scope
Cause: User tried to use a table/aggregate function in PL/SQL scope.
Action: Do not use table/aggregate function in PL/SQL scope.
PLS-00654: PARTITION/ORDER/CLUSTER BY are allowed for only with PARALLEL_ENABLE
Cause: User tried partion by order by cluster by without parallel enable clause in table function.
Action: specify parallel enable also when using partion by, cluster by order by clause.
PLS-00655: only functions can be declared as PIPELINED
Cause: user is trying to declare a procedure to be pipeliend function
Action: declare a function instead of a procedure to be a pipelined function
PLS-00656: field 'string' not available in input argument
Cause: An EXTRACT operation specified a field that was not present. For example, you tried to extract the YEAR field from a TIME variable.
Action: Specify a legal field in the call to EXTRACT.
PLS-00657: Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported.
Cause: Variable or expression of associative array type was used as bulk SQL bind or define.
Action: Use colleciton types supported by bulk SQL.
PLS-00658: constructor method name must match type name
Cause: The name of the object type constructor does not match the type name.
Action: Change the name of the constructor method to match the type name.
PLS-00659: constructor method must return SELF AS RESULT
Cause: The return clause of the constructor method did not specify SELF AS RESULT.
Action: Change the return clause to include RETURN SELF AS RESULT.
PLS-00660: SELF parameter of constructor method must be IN OUT
Cause: The mode of the SELF parameter of the constructor was not IN OUT.
Action: Change the mode of the SELF parameter to be IN OUT.
PLS-00661: RETURN statement in a CONSTRUCTOR cannot include an expression
Cause: An attempt was made to include an expression in the RETURN statement of a CONSTRUCTOR body.
Action: Remove the expression from the RETURN statement.
PLS-00662: Non-external object types containing external mapped attributes are not allowed
Cause: An attempt was made to create a non-external object, whoose attributes are mapped externally.
Action: Create the object as an external object.
PLS-00663: the NEW keyword is not allowed in this context
Cause: The NEW keyword is not followed by an call to a constructor method.
Action: Remove the NEW keyword, or make sure the expression following it is a constructor call.
PLS-00664: Both ORDER BY and CLUSTER BY can not be specified for the same table function
Cause: An attempt was made to specify both ORDER BY and CLUSTER BY for the same table function.
Action: specify either ORDER BY or CLUSTER BY for a table function, but not both.
PLS-00665: ORDER BY and CLUSTER BY clauses require a PARTITION BY clause
Cause: An attempt was made to specify an ORDER BY or CLUSTER BY clause without also specifying a PARTITION BY clause.
Action: Add a PARTITION BY clause, or remove the ORDER BY or CLUSTER BY clause.
PLS-00666: Only index by binary_integer/pls_integer associative arrays allowed here
Cause: An attempt was made to specify index collection that was not indexed by binary_integer or pls_integer.
Action: Change the index collection variable type to associative array that is indexed by binary_integer or pls_integer.
PLS-00667: Element type of associative array should be pls_integer or binary_integer
Cause: An attempt was made to specify index collection whos element type was not one of pls_integer or binary_integer.
Action: Change the index collection variable type to associative array whose element type is pls_integer or binary_integer.
PLS-00668: Type of expression should be a collection type
Cause: An attempt was made to specify expression after INDICES OF or VALUES OF clause whose type is not a collection type.
Action: Change the index collection expression type to a valid collection type.
PLS-00669: Type of expression should be a valid collection variable
Cause: An attempt was made to specify expression after INDICES OF or VALUES OF clause that is not a collection variable.
Action: Change the index collection expression type to a valid collection variable.
PLS-00670: sort columns must be simple column names
Cause: An attempt was made to specify an expression as a sort column in a PARTITION BY, CLUSTER BY or ORDER BY clause. Only simple column names are permitted.
Action: Specify a simple column name.
PLS-00671: this expression is allowed only with instance methods
Cause: The generalized invocation syntax was used in instance method context.
Action: The generalized invocation syntax can only be used in a instance method that is not a constructor
PLS-00672: The expression string should be a subtype of the type string
Cause: The expression in the generalized expression should be a sub type of the type.
Action: The type of expression should be a subtype of the type name
PLS-00673: Generalized expression is not allowed in this context
Cause: The generalized expression is used in wrong context
Action: Fix the expression and remove the generalized expression syntax.
PLS-00674: references to fields of BULK In-BIND table of records or objects must have the form A(I).F
Cause: The form table(bulk_index).field is the only field selection supported at runtime.
Action: Use a FOR loop instead of the FORALL DML statement (MERGE/INSERT/DELETE/UPDATE) or revise reference to fit the form allowed.
PLS-00675: invalid section for this type of Compound Trigger
Cause: Before and After row sections are not allowed for Compound trigges defined on the Table and instead of row section is not allowed for Compound Triggers defined on a view.
Action: Remove the invalid sections for this context.
PLS-00676: duplicate Compound Triggers section
Cause: Each Compound Trigger Section can appear at most once in a body of the compound trigger
Action: Remove the offending sections.
PLS-00677: Compound Triggers cannot be autonomous transactions
Cause: The Compound Triggers hsd pragma autonomous transaction.
Action: Call autonomous function or procedure, if autonomous transaction behavior is desired from Compound Triggers.
PLS-00678: RETURN statement not allowed inside Compound Triggers
Cause: A return Statement was seen inside a compound trigger
Action: Remove Return statement and use other PL/SQL constructs to transfer flow of control.
PLS-00679: trigger binds not allowed in before/after statement section
Cause: :new or :old were used in this section.
Action: Do not use trigger binds in this section
PLS-00680: BEFORE/AFTER ROW sections were used in a view trigger
Cause: BEFORE/AFTER ROW sections are not allowed with instead of row triggers.
Action: Remove the offending sections.
PLS-00700: PRAGMA EXCEPTION_INIT of string must follow declaration of its exception in the same declarative part
Cause: An EXCEPTION_INIT pragma was not declared in the same block as its exception. They must be declared in the proper order in the same block, with the pragma declaration following the exception declaration.
Action: Place the EXCEPTION_INIT pragma directly after the exception declaration referenced by the pragma.
PLS-00701: illegal ORACLE error number string for PRAGMA EXCEPTION_INIT
Cause: The error number passed to an EXCEPTION_INIT pragma was out of range. The error number must be in the range -9999 .. -1 (excluding -100) for Oracle errors or in the range -20000 .. -20999 for user-defined errors.
Action: Use a valid error number.
PLS-00702: second argument to PRAGMA EXCEPTION_INIT must be a numeric literal
Cause: The second argument passed to an EXCEPTION_INIT pragma was something other than a numeric literal (a variable, for example). The second argument must be a numeric literal in the range -9999 .. -1 (excluding -100) for Oracle errors or in the range -20000 .. -20999 for user-defined errors.
Action: Replace the second argument with a valid error number.
PLS-00703: multiple instances of named argument in list
Cause: Two or more actual parameters in a subprogram call refer to the same formal parameter.
Action: Remove the duplicate actual parameter.
PLS-00704: 'string' must be declared as an exception
Cause: The exception_name parameter passed to an EXCEPTION_INIT pragma is misspelled or does not refer to a legally declared exception. Or, the pragma is misplaced; it must appear in the same declarative section, somewhere after the exception declaration.
Action: Check the spelling of the exception_name parameter. Then, check the exception declaration, making sure the exception name and the keyword EXCEPTION are spelled correctly. Also make sure the pragma appears in the same declarative section somewhere after the exception declaration.
PLS-00705: exception 'string' used in expression requiring return type
Cause: An exception was referred to in an expression. Exceptions have names but not values and therefore cannot contribute values to an expression. For example, the following RETURN statement is illegal: FUNCTION credit_limit (cust_no INTEGER) RETURN NUMBER IS limit NUMBER; over_limit EXCEPTION; ... BEGIN ... RETURN over_limit; -- illegal END;
Action: Check the spelling of the identifiers in the expression, then rewrite the expression so that it does not refer to an exception.
PLS-00706: Exception string cannot be used as prefix of a selected component
Cause: An exception name was mistakenly used to qualify a reference to a component. For example, when dot notation was used to specify fields within a record, an exception name might have been coded instead of the record name.
Action: Rewrite the component reference using a valid prefix (for example, the name of a package, record, or schema).
PLS-00707: unsupported construct or internal error [string]
Cause: At run time, this is an internal error. At compile time, it indicates one of the following problems: -- A call was made to a remote subprogram that has a parameter type or default expression not supported at the calling site. -- An incomplete upgrade or downgrade was done to a database that has stored procedures. Perhaps incorrect versions of system packages such as STANDARD.SQL were installed. -- A compiler bug was encountered. In such cases, legal PL/SQL syntax will fail to compile.
Action: Either report the internal error to your Customer Support representative or, depending on the problem, take one of the following actions: -- Revise the logic of the application to use parameter types and default expressions that are supported at both the local and remote sites. -- Complete the upgrade or downgrade properly, making sure to install correct versions of all system packages. -- Report the legal-syntax error to your Customer Support representative. If there are line and column numbers displayed with the error message, they might help you find a workaround. For example, try recoding the offending line to avoid the bug.
PLS-00708: Pragma string must be declared in a package specification
Cause: The named pragma was not declared in a package specification, as required. For example, the pragma RESTRICT_REFERENCES must be declared in a package specification.
Action: Remove or relocate the misplaced pragma.
PLS-00709: pragma string must be declared in package specification and body
Cause: The named pragma was declared in a package specification but not in the corresponding package body or vice-versa, as well as the package body.
Action: Add the pragma to that part of the package declaration that does not have the pragma.
PLS-00710: Pragma string cannot be specified here
Cause: The pragma was specified in an inappropriate context.
Action: Remove or relocate the misplaced pragma. Check the documentation to determine the correct context for this pragma.
PLS-00711: PRAGMA string cannot be declared twice
Cause: The PRAGMA was declared twice in the same block.
Action: remove the duplicate declaration of the PRAGMA
PLS-00712: illegal option for subprogram string
Cause: Only top level subprograms or subprogram declarations in PACKAGE or TYPE specifications are allowed to have the options DETERMINISTIC or PARALLEL_ENABLE. For example, this error would be raised if the options are used in PACKAGE or TYPE body.
Action: remove the option.
PLS-00713: attempting to instantiate a type that is NOT INSTANTIABLE
Cause: An attempt was made to instantiate a type that is defined as NOT INSTANTIABLE.
Action: Avoid instantiating variables of this NOT INSTANTIABLE type, instead derive an INSTANTIABLE subtype from it and instantiate variables of the subtype.
PLS-00714: supertypes's AUTHID is DEFINER but supertype and subtype are not in same schema
Cause: The supertype's AUTHID is DEFINER, but the supertype and subtype are defined in different schemas. SQL statements executed in dynamically dispatched methods can potentially pick up different values from database tables in the two schemas.
Action: Create the subtype in the same schema as the supertype.
PLS-00715: attribute or method by name 'string' does not exist
Cause: An attempt was made to drop a nonexistant method or attribute from the type being altered.
Action: Check the spelling of the attribute or method name. Make sure it is locally defined in the type and not inherited.
PLS-00716: Attribute/method 'string' can occur only once in an ALTER TYPE statement
Cause: User attempted more than one of ADD, DROP or MODIFY on an attribute in single ALTER TYPE statement. User attempted more than one of ADD or DROP on a method in single ALTER TYPE statement.
Action: Do only one ADD, DROP or MODIFY for an attribute in single ALTER TYPE statement. Do only one ADD or DROP for a method in single ALTER TYPE statement.
PLS-00717: method 'string' does not have matching signature among existing methods
Cause: The method to be dropped matches the name of some existing method but does not match it in signature.
Action: Make sure that a matching method signature is provided for dropping a method.
PLS-00718: type of attribute 'string' does not allow modifications to the attribute
Cause: The type of the attribute to modify is not one of VARCHAR2, NUMBER, or RAW.
Action: Only VARCHAR2, NUMBER and RAW type attributes are allowed to be modified.
PLS-00719: only widening of attribute 'string' constraints is allowed
Cause: Modification to the attribute did not widen its constraints or attempted to change the type of the attribute. For NUMBER type attributes, scale and precision can be changed to allow increase in number of digits after and before the decimal point. For VARCHAR2 and RAW type attributes the size can be increased. Other type attributes are not allowed to be modified. Change of type of attribute is also not allowed.
Action: Change the constraint specification so as to widen the existing constraints.To narrow the constraints or to change the type of the attribute, you must drop the attribute and add it with new constraints or new type. In that case you must also take appropriate steps to preserve your existing data based on the type (if you want to preserve it).Typically this will involve backing up the data and restoring it after the ALTER TYPE.
PLS-00720: type 'string' has evolved
Cause: The type has evolved. The version of the type used by the compiled code is not the same as the latest version of the type.
Action: Recompile the code to use the latest version of the type.
PLS-00721: 'string' formed a non-REF mutually-dependent cycle with 'string'
Cause: This compilation was aborted because the library unit that was compiled would have formed a non-REF mutually-dependent cycle with some other library units. This happens when an attempt is made to compile types that have attributes of other types that may participate in a cycle with this type. Example: create type t1; create type t2 (a t1); create type t1 (a t2);
Action: Break the cycle (possibly by adding a REF or by using another type).
PLS-00722: supertypes's AUTHID is different than subtype's AUTHID
Cause: The subtype's's AUTHID must be same as the supertype's AUTHID.
Action: Create the subtype with AUTHID of its supertype or do not specify AUTHID for subtype.
PLS-00725: type 'string' must be a supertype or subtype of the TREAT expression
Cause: In TREAT(<expr> AS <type>), type must be a supertype or subtype of <expr>.
Action: None
PLS-00726: MODIFY ELEMENT is supported only on schema-level varray and nested tables
Cause: An attempt was made to modify the limit of a type that was not a schema-level varray and nested table type.
Action: This is not a legal ALTER TYPE command for this type.
PLS-00727: MODIFY LIMIT is supported only on schema-level varray types
Cause: An attempt was made to modify the limit of a type that was not a schema-level varray type.
Action: This is not a legal ALTER TYPE command for this type.
PLS-00728: the limit of a VARRAY can only be increased and to a maximum 2147483647
Cause: An attempt was made to decrease the limit or raise it past 2147483647.
Action: This is not a legal limit for this type, change it.
PLS-00729: only widening of the collection element type is allowed
Cause: Modification to the collection element type did not widen its constraints or attempted to change the type of the element. For NUMBER types, scale and precision can be changed to allow increase in number of digits after and before the decimal point. For VARCHAR2 and RAW type attributes the size can be increased.
Action: Change the constraint specification so as to widen the existing constraints.
PLS-00730: collection element type does not allow modifications
Cause: The element type to modify is not one of VARCHAR2, NUMBER, or RAW.
Action: Only VARCHAR2, NUMBER and RAW collection elements can be modified.
PLS-00731: ALTER TYPE is supported only on schema-level types
Cause: An attempt was made to alter a type that was not schema-level.
Action: ALTER TYPE is not legal for this type.
PLS-00732: Illegal overload of ellipsis in formal parameter list
Cause: An ellipsis and a non-ellipsis type appeared at the same position in separate overload candidates. Currently, if ellipsis types are used they must appear in ALL overload candidates with the same name (regardless of the number or types of their formal parameters) at the same position in the formal parameter list.
Action: Make sure that ellipsis types appear at the same position in all overload candidates.
PLS-00733: RPCs to variable argument functions are not allowed
Cause: Attempted to call a vararg function (a function which contains ellipsis in the formal parameter list) as an RPC.
Action: Do not call vararg functions as an RPC.
PLS-00734: Illegal use of an associational parameter with a formal ellipsis
Cause: Attempted to use an associational actual argument for a formal ellipsis type argument.
Action: Remove associational parameters which correspond to formal ellipsis types.
PLS-00735: Attempted to declare more than one formal ellipsis parameter
Cause: More than one ellipsis ('...') was found in a formal parameter specification for a function or procedure
Action: Make sure only one ellipsis appears in a formal parameter specification for any given function or procedure
PLS-00736: user-declared operators are not allowed
Cause: An attempt was made by the user to declare an operator (a function whose name is enclosed in single quotes ("'")). Operators may only be declared in package STANDARD.
Action: Remove the single quotes from around the function name, replacing them with double quotes (""") only if needed.
PLS-00737: LIBRARY or ASSEMBLY file specification exceeds the maximum allowed length
Cause: A string of more than expected number of chararacters was found for the LIBRARY or ASSEMBLY file specification.
Action: Limit the LIBRARY or ASSEMBLY file specification to the appropriate size for the platform.
PLS-00738: REF target string changed during compilation
Cause: The current unit contains a REF to a target object. During compilation, the REF's target object was simultaneously changed by a different session. The current unit is therefore invalid and needs to be recompiled to pick up the latest definition of the REF target.
Action: Recompile the unit that has this error.
PLS-00739: FORALL INSERT/UPDATE/DELETE not supported on remote tables
Cause: The current statement refers to remote insert/update/delete for remote object.
Action: Use a FOR loop instead of a FORALL loop or call a remote function or procedure that includes the FORALL INSERT/UPDATE/ DELETE statement.
PLS-00740: ASSEMBLY identity specification exceeds the maximum allowed length
Cause: A string of more than expected number of chararacters was found for the ASSEMBLY identity specification.
Action: Limit the ASSEMBLY identity specification to the appropriate size.
PLS-00741: string must be specified on subprogram string's declaration and definition
Cause: A property was specified on a subprogram's declaration but not on its definition or vice-versa.
Action: Certain subprogram properties (e.g., RESULT_CACHE) must be specified as part of the subprogram declaration and definition. For example, if the property RESULT_CACHE is specified on a subprogram declared in a package specification, then it must also be specified on the subprogram's definition in the package body (and vice-versa).
PLS-00742: field string is not yet denotable
Cause: When the fields of a record were declared, one field was used to initialize another, as in: TYPE my_rec IS RECORD (f1 varchar2(10), f2 varchar2(10) := f1); The first field has no value until run time, so it cannot be used to initialize another field.
Action: Remove the illegal field reference.
PLS-00743: ASSEMBLY IDENTITY string is null
Cause: The string provided for the identity clause of an ASSEMBLY was null.
Action: Provide a valid identity string for the ASSEMBLY.
PLS-00744: DOTNET call specification methodname is null
Cause: The string provided for the METHODNAME clause of a DOTNET call specification was null.
Action: Provide a valid METHODNAME for the ASSEMBLY.
PLS-00745: ASSEMBLY CONTEXT string is null
Cause: The string provided for the CONTEXT clause of an ASSEMBLY was null.
Action: Provide a valid CONTEXT string for the ASSEMBLY.
PLS-00746: ASSEMBLY AGENT string is null
Cause: The string provided for the AGENT clause of an ASSEMBLY was null.
Action: Provide a valid AGENT string for the ASSEMBLY.
PLS-00747: .NET assemblies are not supported on this platform
Cause: .NET assemblies were not supported on this platform. .NET assemblies are only supported on 32-bit and 64-bit Windows.
Action: Only attempt to create assemblies on 32-bit or 64-bit Windows.
PLS-00748: compilation terminated due to other errors
Cause: Compilation of the library unit was terminated because of other reported errors.
Action: Fix the other reported errors.
PLS-00751: cannot find PACKAGE SYS_STUB_FOR_PURITY_ANALYSIS
Cause: A top level subprogram (function or procedure) cannot be created if the system package SYS_STUB_FOR_PURITY_ANALYSIS is missing in the Oracle database.
Action: Make sure the package is in the database, and retry the creation
PLS-00752: Table function string is in an inconsistent state.
Cause: Some of the internally generated types prefixed with SYS_ have been dropped. These should never be dropped by the user.
Action: Recompile the table function or the package or type that contains the table function.
PLS-00753: malformed or corrupted wrapped unit
Cause: The format of the wrapped unit being compiled is not understood by the compiler. This may be because the unit was edited or modified after it was wrapped.
Action: Rewrap the unit.
PLS-00754: illegal reference to editioned object string
Cause: An attempt was made to violate the rule "A noneditioned object may not depend on an editioned object."
Action: Either make this obejct editioned; or do not make the illegal reference.
PLS-00755: SYSAUX tablespace offline while saving identifier data
Cause: The SYSAUX tablespace was offline while attempting to save identifier data. Any identifier data previously collected and saved for the libunit will be invalid.
Action: Bring the SYSAUX tablespace back online and recompile the object.
PLS-00756: PL/SQL does not support feature "string" "string" in this environment
Cause: Some host environments of the PL/SQL compiler do not support the full range of PL/SQL features. A construct in the program violated one of the current host's restrictions.
Action: Modify the program to avoid using features that are not supported by this host environment. Check the host environment documentation for specific changes and limitations in PL/SQL features.
PLS-00801: internal error [string]
Cause: This is a generic internal error that might occur during compilation or execution. The first parameter is the internal error number.
Action: Report this error as a bug to your Customer Support representative.
PLS-00900: can't find body of unit 'string'
Cause: At run time, the body of a program unit could not be found. This can happen for one of two reasons. -- First, there may be a unit 'a' which calls a module 'b', where the spec for 'b' exists but not the body. In this case, since the spec is present, there will be no compile-time errors. -- Secondly, this can occur if there is a reference to a sequence outside of the proper context such as a SQL statement. In this case, the "spec" of the sequence reference can be found, but it is invalid to actually run code which references the sequence outside a SQL statement, as in: i := seq.nextval;
Action: If caused by the first reason, create a body for the object that is being referenced. If caused by the second reason, move the sequence into a SQL statement. For example, i := seq.nextval; can be replaced by: select seq.nextval into temp from dual; i := temp;
PLS-00901: the data type of column 'string' of table 'string' is not supported
Cause: A column in a database table belongs to a datatype that is not supported by the current release of PL/SQL.
Action: Remove the offending column from the table or copy the desired columns to another table.
PLS-00902: A READ-ONLY bind variable used in OUT or IN-OUT context
Cause: A host variable that is protected from update was used in a context that allows an update.
Action: Check the context and change the use of the host variable, or assign the value of the host variable to a PL/SQL local variable, then use the local variable instead.
PLS-00904: insufficient privilege to access object string
Cause: An attempt was made to operate on a database object without the required privilege. This error occurs, for example, if an attempt was made to UPDATE a table for which only SELECT privileges were granted.
Action: Ask the DBA to perform the operation or to grant you the required privilege.
PLS-00905: object string is invalid
Cause: An invalid package specification or stored subprogram was referenced. A package specification or stored subprogram is invalid if its source code or any database object it references has been DROPped, REPLACEd, or ALTERed since it was last compiled.
Action: Find out what invalidated the package specification or stored subprogram, then make sure that Oracle can recompile it without errors.
PLS-00906: Compilation is not possible
Cause: The PL/SQL compiler cannot run properly because its operating environment is corrupted. For example, its error message file might be inaccessible.
Action: Check the PL/SQL operating environment, making sure that all files required by the compiler are accessible.
PLS-00907: cannot load library unit string (referenced by string)
Cause: PL/SQL is unable to find and load a library unit that was previously available. This typically happens when you try to load a unit which references another library unit that is non-existent or invalid.
Action: Provide the needed library unit.
PLS-00908: The stored format of string is not supported by this release
Cause: PL/SQL cannot understand the stored format of a library unit. It has been compiled or shrink-wrapped with a version of PL/SQL either too new or too old for this version to understand it.
Action: Recompile the library unit for this version of PL/SQL.
PLS-00909: object string is not declared or insufficient privileges to access object string
Cause: An object from the operator declaration is not declared, or it is declared but there is no sufficient privileges to access that object.
Action: Declare the object, or ask the DBA to grant the privileges required to access the object.
PLS-00910: insufficient privilege to inherit from type string
Cause: An attempt was made to inherit from a type without the required UNDER privilege.
Action: None
PLS-00920: parameter plsql_native_library_dir is not set
Cause: A PL/SQL program is being compiled natively, but the compiler parameter plsql_native_library_dir, which denotes the directory to store the native shared objects (DLL), is not set.
Action: The DBA should set this parameter.
PLS-00923: native compilation failed: string:string
Cause: The native compilation of PL/SQL program has failed because the native shared object (DLL) could not be created successfully.
Action: The DBA should ensure that the commands specified in spnc_commands file are correct.
PLS-00924: native compilation is not supported on this platform
Cause: Native compilation of PL/SQL programs is not supported on this platform.
Action: Compile the PL/SQL program to bytecode by setting the parameter plsql_compiler_flags to INTERPRETED.
PLS-00925: native compilation failed: Unable to create file (string string)
Cause: Native compilation of a PL/SQL program failed because a file could not be created. It is likely that the system parameter plsql_native_library_dir does not reference a writable, existing directory
Action: Ensure that the system parameter plsql_native_library_dir references a directory which exists, and is writable.
PLS-00950: In this version, PL/SQL tables can not be used in this SQL statement.
Cause: In a SQL statement, a PL/SQL table was referenced incorrectly. For example, the following reference might have been made, but PL/SQL table attributes can only be used in procedural statements: SELECT ename_tab.COUNT INTO name_count WHERE ...
Action: Remove the incorrect reference from the SQL statement.
PLS-00951: string Feature is not supported by this release
Cause: PL/SQL cannot understand something in an imported library unit. It uses some feature either too new or too old for this version to understand it.
Action: Recompile the imported library unit with this version of PL/SQL, to discover more precisely what feature is not supported.
PLS-00960: RPCs cannot use parameters with schema-level object types in this release
Cause: Schema-level object types, or types which recursively use such types, were used in an RPC, which is not permitted. For example: create type foo as object (...) create package my_pack is type my_rec is record(v foo); -- on a remote server: x my_pack.my_rec@rpc; -- illegal attempt to use type my_rec
Action: Use only PL/SQL-defined types in RPC calls. It may be necessary to add extra code to element-wise copy schema-level types into local types in order to move such data through an RPC.
PLS-00970: The class name of a method must match that of EXTERNAL NAME clause in the type header
Cause: The class name defined as part of the method signature does not match the one defined in the type header in the EXTERNAL NAME clause. create type foo as object EXTERNAL NAME 'foo' LANGUAGE JAVA (... MEMBER FUNCTION my (number) return number EXTERNAL NAME 'bar.func(oracle.sql.NUMBER) return oracle.sql.NUMBER', .. );
Action: Either omit the class name from the method signature or use the one defined in the type header.
PLS-00989: Cursor Variable in record, object, or collection is not supported by this release
Cause: 3.0 Implementation Restriction for Ref Cursors
Action: None
PLS-00990: Index Tables of Cursor Variables are disallowed
Cause: 2.2 Implementation Restriction for Ref Cursors
Action: None
PLS-00992: Cursor Variables cannot be FETCH'ed from
Cause: 2.2 Implementation Restriction for Ref Cursors
Action: None
PLS-00993: Cursor variables cannot be passed as forwarded RPC arguments or results
Cause: An attempt was made to pass a cursor variable to or from a remote subprogram by way of a forwarded RPC, which is not allowed. For example, from a client-side tool, a procedure on a remote database cannot be used to open a cursor variable because remote subprograms cannot return the values of cursor variables.
Action: Change the subprogram call to reference the local database.
PLS-00994: Cursor Variables cannot be declared as part of a package
Cause: An attempt was made to declare a cursor variable in a package specification, which is not allowed. Although REF CURSOR types can be defined in a PL/SQL block, subprogram, or package, cursor variables can be declared only in a block or subprogram.
Action: Move the cursor variable declaration into a PL/SQL block or subprogram.
PLS-00995: unhandled exception # string
Cause: An exception was raised for which no handler was found. If it cannot find a handler for a raised exception, PL/SQL returns an unhandled exception to the host environment. The number embedded in the message is an Oracle error code listed in this manual.
Action: Fix the condition that raised the exception, write an appropriate exception handler, or use the OTHERS handler. If there is an appropriate handler in the current block, the exception was raised in a declaration or exception handler, and therefore propagated immediately to the enclosing block.
PLS-00996: out of memory
Cause: A request from PL/SQL for more memory failed.
Action: Make sure that you are not referencing the wrong row in a PL/SQL table and that the program is not recursing too deeply.
PLS-00997: no cursor return types allowed in this beta version
Cause: Cursor return types have bugs, and it is best to disable them for now.
Action: None
PLS-01400: Use of '||' token
Cause: Use of '||' token in expressions is not in ANSI's grammar. This corresponds to the "binary_add_op"'s reduction to a "CAT_" in plsql.y
Action: None
PLS-01401: Identifier over 18 characters long
Cause: Identifiers over 18 characters long are not allowed under the ANSI grammar.
Action: None
PLS-01402: Use of quoted identifier
Cause: The use of quoted identifiers is a PL/SQL extension and is not allowed under the ANSI grammar.
Action: None
PLS-01403: Comment delimiters /* */
Cause: C-style comments (introduced with the '/' and '*' characters) are not part of the ANSI grammar. To conform with ANSI, comments must be preceded by the ANSI comment introducer, '--' , and must not contain a newline. If someone can figure out a way to make this message look less cheesy without ending up with nested comments, be my guest.
Action: None
PLS-01404: ANSI Identifiers can only consist of letters, digits, and the underscore character
Cause: ANSI identifiers can only consist of letters, digits, and the underscore character. PL/SQL allows "#" and "$" in identifiers, but these are not ANSI.
Action: None
PLS-01405: Under ANSI's grammar, numeric data represented in exponent notationmust use an uppercase E
Cause: Under ANSI's grammar, numeric data represented in exponent notation must use an uppercase "E". Example: 3.45E-6 is ANSI, but 3.45e-6 is not.
Action: None
PLS-01406: An identifier has been found that is considered a keyword in ANSI's grammar but not in PL/SQL's
Cause: An identifier has been found that is considered a keyword in ANSI's grammar but not in PL/SQL's.
Action: None
PLS-01407: One of the identifiers CHAR, CHARACTER, or INTEGER has been redefined by the programmer
Cause: One of the identifiers "CHAR", "CHARACTER", or "INTEGER" (all ansi keywords) has been redefined by the programmer.(special case of 1406, above).
Action: None
PLS-01408: Use of '&' token
Cause: Use of '&' token in expressions is not in ANSI's grammar.
Action: None
PLS-01409: Use of 'PRIOR_' token
Cause: Use of 'PRIOR_' token in expressions is not in ANSI's grammar.
Action: None
PLS-01410: Use of 'MOD' token
Cause: Use of 'MOD' token in expressions is not in ANSI's grammar.
Action: None
PLS-01411: Use of 'REM' token
Cause: Use of 'REM' token in expressions is not in ANSI's grammar.
Action: None
PLS-01412: Use of 'EXP' token
Cause: Use of 'EXP' token in expressions is not in ANSI's grammar.
Action: None
PLS-01413: Use of NULL an expression
Cause: Use of NULL an expression not in ANSI's grammar.
Action: None
PLS-01414: Use of qualified expression here
Cause: Use of qualified expression here is not in ANSI's grammar.
Action: None
PLS-01415: Use of aggregate value here
Cause: Use of aggregate value here is not in ANSI's grammar.
Action: None
PLS-01416: Use of <id> (<value>...) here
Cause: Use of <id> (<value>...) here is not in ANSI's grammar.
Action: None
PLS-01417: Use of %attribute
Cause: Use of %%attribute value here is not in ANSI's grammar.
Action: None
PLS-01418: Subquery cannot include set operators in ANSI's grammar
Cause: Subquery cannot include set operators in ANSI's grammar.
Action: None
PLS-01419: Subquery must have either '*' or exactly one column in its select list
Cause: Subquery must have either '*' or exactly one column in its select list according to ANSI's grammar.
Action: None
PLS-01420: INTERSECT and MINUS set operators are not ANSI
Cause: INTERSECT and MINUS set operators are not ANSI
Action: None
PLS-01421: FOR UPDATE clause
Cause: FOR UPDATE clause is not in ANSI's grammar.
Action: None
PLS-01422: Aliases
Cause: Aliases are not in ANSI's grammar.
Action: None
PLS-01423: Subquery on right-hand-side in set clause
Cause: Subquery on right-hand-side in set clause is not in ANSI's grammar.
Action: None
PLS-01424: Non-ANSI order of clauses
Cause: ANSI specifies an ordering to clauses in a table-expression which PL/SQL doesn't. The ordering according to ANSI must be: (1) from clause (2) where clause (3) group-by clause (4) having clause In PL/SQL, the from clause must come first, and the clauses after it can appear in any order (with the addition of the non-ansi connect-by clause).
Action: None
PLS-01425: Connect-by clause
Cause: ANSI doesn't allow connect-by clauses.
Action: None
PLS-01450: This <value expression> contains a nonconforming data type
Cause: This <value expression> contains a nonconforming data type. Section 4.2 of X3H2, "Data types" states that: "A nonnull value is either a character string or a number." Many builtin functions in STANDARD will be flagged with this warning by means of a pragma.
Action: None
PLS-01451: The data types of these <value expressions> must be comparable
Cause: The data types of these <value expressions> must be comparable. Section 4.2 of X3H2, "Data types", states that: "A character string and a number are not comparable values." Many builtin functions in STANDARD will be flagged with this warning by means of a pragma. This warning will be place on data-type coercion functions, for example, TO_CHAR(<number>), that are inserted in OracleSQL to allow non-conforming data type combinations.
Action: None
PLS-01452: This function is not part of the ANSI standard
Cause: This function is not part of the ANSI standard. This warning is used to flag such functions as "POWER" that are not mentioned in the ANSI specifications.
Action: None
PLS-01453: This procedure is not part of the ANSI standard
Cause: This procedure is not part of the ANSI standard. This warning is used to flag such procedures as "STOP" that are not mentioned in the ANSI specifications.
Action: None
PLS-01454: No operator may be used with values of data type CHAR
Cause: No operator may be used with values of data type "character string". Section 5.9, "<value expression>", syntax rule 3, of X3H2 states: "If the data type of a <primary> is character string, then the <value expression> shall not include any operators." This warning is placed on many functions in STDBASE that take CHAR args.
Action: None
PLS-01455: The predicates IS NULL and IS NOT NULL are defined only for column specifications
Cause: The predicates "IS NULL" and "IS NOT NULL" are defined only for column specifications, not for any other expressions. Section 5.15, "<null predicate>", indicates that in the predicate "x IS NULL", x must be a column, and may not be any other kind of expression.
Action: None
PLS-01458: The set clause in an UPDATE statement requires a column name of length 1
Cause: The set clause in an UPDATE statement requires a column name of length 1. Sect. 8.11, 8.12
Action: None
PLS-01460: Cannot access object on a remote host
Cause: Cannot access object on a remote host.
Action: None
PLS-01463: STDDEV is not a standard set function
Cause: STDDEV is not a standard set function.
Action: None
PLS-01464: VARIANCE is not a standard set function
Cause: VARIANCE is not a standard set function.
Action: None
PLS-01466: Null strings are not allowed
Cause: Null strings are not allowed.
Action: None
PLS-01467: The value list of the IN predicate, if not a subquery, must contain only value_specifications
Cause: The value list of the IN predicate, if not a subquery, must contain only value_specifications (i.e. literals and PL/SQL or embedded variables).
Action: None
PLS-01468: The first argument of the like-predicate must be a column of type character string
Cause: The first argument of the like-predicate must be a column of type character string.
Action: None
PLS-01469: ANSI standard does not permit records
Cause: ANSI standard does not permit records.
Action: None
PLS-01470: The escape character in the like-predicate must be a literal or a variable of type CHAR
Cause: The escape character in the like-predicate must be a literal or a variable of type character.
Action: None
PLS-01471: The keyword DISTINCT must be present in a COUNT(DISTINCT sim_expr)
Cause: The keyword DISTINCT must be present in a COUNT(DISTINCT sim_expr). Sect 5.8
Action: None
PLS-01472: In a set_function_specification, if DISTINCT is present, the expression must be a column_specification
Cause: In a set_function_specification, if DISTINCT is present, the expression must be a column_specification.
Action: None
PLS-01473: Use <> instead of != or ~=
Cause: Use <> instead of != or ~=. Sect 5.11.
Action: None
PLS-01474: Use of ANY is non_ANSI
Cause: Due to the combining of comparison_predicate and quantified_predicate, we may have something like sim_expr = ANY_ sim_expr, which is nonetheless accepted by kernel.
Action: None
PLS-01500: Unions are not allowed in the definition of a view
Cause: Unions are not allowed in the definition of a view. Sect. 6.9
Action: None
PLS-01501: Options in CREATE TABLE statement is non-ANSI.
Cause: CREATE TABLE allows only the definition of the structure of a table. None of the .SPACE__name. .PCTFREE__numeric_literal. .cluster. is ANSI. Sect. 6.2
Action: None
PLS-01502: Constraint name and constraint status are non-ANSI.
Cause: Constraint name and constraint status are non-ANSI. Sect. 6.3
Action: None
PLS-01503: The expression in a SET clause must not include a set function
Cause: The expression in a SET clause must not include a set function. Sect. 8.12.
Action: None
PLS-01504: Use of AS phase in CREATE TABLE statement is non_ANSI
Cause: CREATE TABLE allows only the definition of the structure of a table. Use of AS phase in CREATE TABLE statement is non-ANSI.
Action: None
PLS-01505: ALTER is non-ANSI
Cause: ALTER is non-ANSI
Action: None
PLS-01506: CREATE INDEX is non-ANSI
Cause: CREATE INDEX is non-ANSI
Action: None
PLS-01507: DROP is non-ANSI
Cause: DROP is non-ANSI
Action: Sect. 6.2
PLS-01701: Illegal syntax in ROLLBACK WORK statement
Cause: Illegal syntax in ROLLBACK WORK statement.
Action: None
PLS-01702: Illegal syntax in COMMIT WORK statement
Cause: Illegal syntax in COMMIT WORK statement.
Action: None
PLS-01703: Cursor name in CLOSE statment must be of length 1
Cause: Cursor name in CLOSE statment must be of length 1.
Action: None
PLS-01704: The expressions in a sort clause must be column specs or unsigned integers, with optional ASC or DESC
Cause: The expressions in a sort clause may only be column specifications or unsigned integers, followed by optional ASC or DESC.
Action: None
PLS-01705: table specified by a cursor not updatable if cursor specification has a UNION or ORDER_BY
Cause: Missing keyword FROM.
Action: None
PLS-01707: In positioned DELETE or UPDATE statement, table must be identified in specification of cursor
Cause: In a positioned DELETE or UPDATE statement, the table deleted fromor updated must be identified in the specifictation of the cursor.
Action: None
PLS-01708: In searched DELETE, UPDATE or INSERT, table must not appear in FROM clause of subqueries in search condition
Cause: In a searched DELETE, UPDATE or INSERT statement, the table affected must not appear in a FROM clause in any of the subqueries in the search condition.
Action: None
PLS-01709: value list of INSERT statement, if specified with value list rather than subquery, must be value specification
Cause: In an INSERT statement, the insert value list, if specified with a value list rather than a subquery, must be value specifications, i.e. no compound expressions or column references. Sect 8.7.
Action: None
PLS-01710: In a positioned DELETE or UPDATE statement, the cursor name must be of length 1
Cause: In a positioned DELETE or UPDATE statement, the cursor name must be of length 1.
Action: None
PLS-01711: A SELECT statement may not contain ORDER_BY, HAVING, or GROUP_BY clause
Cause: A SELECT statement may not contain ORDER_BY, HAVING, or GROUP_BY clause. Sect. 8.10.
Action: None
PLS-01712: ANSI does not allow bind variables as INDICATORS
Cause: ANSI does not allow bind variables as INDICATORS
Action: None
PLS-01713: The constraints on these types do not match
Cause: The constraints on these types do not match
Action: None
PLS-01714: ANSI expects a column name not a literal value here
Cause: ANSI expects a column name not a literal value here
Action: None
PLS-01900: : character to number conversion error
Cause: There was a failure while converting a character string into a numeric value.
Action: Verify that all character strings assigned to number variables have valid numeric value interpretations.
PLS-01901: : host bind array too small
Cause: PL/SQL was unable to transfer data into a host array because the array is too small.
Action: Increase the size of the host array.
PLS-01902: : hex to raw conversion error
Cause: There was a failure while converting a hexadecimal string to a raw.
Action: Verify that the hexadecimal variable to be converted contains a valid hexadecimal value.
PLS-01903: : non-integer error number
Cause: SQLERRM() was called with a non-integer value.
Action: Make sure SQLERRM() is called with an integer value.
PLS-01904: : NULL index table key value
Cause: An attempt was made to index into an index table with a NULL key value.
Action: Make sure key values used to index into index tables are non-NULL.
PLS-01905: : character string buffer too small
Cause: An error was encountered while moving a character string from a source to a destination. This error occurs if, for example, an attempt is made to move a a character string of 10 characters into a 1 character buffer. The cause of this error may not always be obvious. For example, the following will result in this error: a varchar2(1); b number; b := 10; a := b; An error results because an implicit conversion causes the number 10 to become the character string '10', which does not fit in the character buffer of 1 allocated for the variable a.
Action: First, look for character string assignment statements where the buffer size is mismatched. If there are none found, then consider the implicit conversion case illustrated in the example above.
PLS-01906: : raw variable length too long
Cause: The length of a raw variable being copied or assigned was too long to fit into its destination.
Action: Make sure the raw variable length is correct.
PLS-01907: : number precision too large
Cause: The number begin copied or assigned had too many digits to the left of the decimal and did not fit into its destination. In other words, there is a number precision mismatch. This error may also occur if, for example, an attempt is made to assign a character string to a number, as demonstrated below. a varchar2(4); b number(1,1); a := '10.1'; b := a;
Action: First, check explicit number precision value mismatches. If none are found, then consider implicit conversions of other types to numbers, including conversions performed during binds.
PLS-01908: : RETURNING INTO buffer too small
Cause: PL/SQL determined that a server side DML with a RETURNING INTO clause does not use a buffer that is large enough to hold the data being returned.
Action: Increase the size of the RETURNING INTO clause buffer.
PLS-01909: : cannot assign supertype instance to subtype
Cause: An attempt was made to assign or copy a supertype instance to a container (destination) that can only hold a subtype instance.
Action: Make sure the runtime type of the source of the assignment or copy is the same type as the destination or is a subtype of the destination type
PLS-01910: : associative array shape is not consistent with session parameters
Cause: NLS parameters affecting comparison of keys have been altered dynamically. The associative array's index is invalid.
Action: Avoid using associative arrays with string keys in applications which require frequent changes of NLS_COMP and/or NLS_SORT.
PLS-01911: : associative array key violates its type constraints
Cause: The key value of an element being inserted into an associative array violates the the key type constraints.
Action: Relax the constraints if the key value is meant to be acceptable. Otherwise, apply a valid key value when inserting an element.
PLS-01912: : instance must of be of type 'string'
Cause: The run-time type of the instance is not the declared type. e.g. If the return value of a user defined constructor is wrong.
Action: Return the correct type.
PLS-01913: : instance must of be of type 'string' or one of its subtypes
Cause: The run-time type of the instance is the not declared type or one of its subtypes. e.g. TREAT(supertype AS subtype) fails.
Action: Catch the exception.
PLS-01914: duplicate SECURITY specification in subprogram expression
Cause: The subprogram was found to have two SECURITY specifications.
Action: Remove one of the SECURITY specifications.
PLS-01915: duplicate ASSEMBLY specification in subprogram expression
Cause: The subprogram was found to have two ASSEMBLY specifications.
Action: Remove one of the ASSEMBLY specifications.
PLS-01916: SECURITY level specification exceeds ASSEMBLY SECURITY specification
Cause: The security level specified in the callspec exceeds the maximum security level allowed by the assembly.
Action: Lower the security level specified in the callspec to match the maximum security level specificed in the assembly.
PLS-01917: illegal reference to package STANDARD item 'string'
Cause: The item is intended for internal use and must not be referred to in user code.
Action: Remove the reference and use syntax that provides the necessary functionality.
PLS-01918: 9.2 and earlier wrap formats are not permitted
Cause: An attempt was made to compile a unit that was wrapped using 9.2 or earlier version of the wrap utility. Wrapped source created by 9.2 and earlier versions of wrap is not permitted on this database.
Action: Wrap the source using 10g or later versions of the wrap utility. Alternately, set the initialization parameter PERMIT_92_WRAP_FORMAT parameter to TRUE.