PLS-00261: Java CALL Specification not yet allowed as a method in an object type

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 or 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-00260: Datetime or Interval constraints must be in range (0 .. 9)

PLS-00260: Datetime or Interval constraints must be in range (0 .. 9)

Cause: A Datetime or Interval variable or attribute was declared with a constraint outside the legal range.

Action: Change the illegal constraint.

PLS-00259: rights model (AUTHID) must be specified

PLS-00259: rights model (AUTHID) must be specified

Cause: It is mandatory to specify the rights model if a PL or SQL PROCEDURE, FUNCTION, PACKAGE OR TYPE HAS CALL-Specifications

Action: Add the AUTHID clause indicating the rights model.

PLS-00258: constrained datatypes disallowed in CALL Specifications

PLS-00258: constrained datatypes disallowed in CALL Specifications

Cause: A call specification for C or Java cannot have constraints on the PL or SQL formal parameter types. PL or 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 or SQL formal declaration i.e NUMBER, BINARY_INTEGER or PLS_INTEGER

PLS-00257: illegal use of EXTERNAL clause in a TYPE or PACKAGE specification

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-00256: %s is not a valid external library

PLS-00256: %s is not a valid external library

Cause: The supplied external library name in the external clause is not a valid alias library.

Action: Provide the name of a valid alias library which is previously declared.

PLS-00255: CALL Specification parameters cannot have default values

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-00254: OUT and IN or OUT modes cannot be used in this context

PLS-00254: OUT and IN or OUT modes cannot be used in this context

Cause: actual parameter mode (OUT, or IN or 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-00253: Formal parameter string missing in the parameters clause

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-00252: reference to the wrong copy of package STANDARD

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-00251: RETURN, for actual function return, must be last in the parameters clause

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-00250: Incorrect Usage of string in parameters clause.

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 or SQL formal parameters or the mode of the formal parameter. For example, MAXLEN can only be declared for a CHAR or VARCHAR2 PL or SQL variable and its use is allowed only for OUT or INOUT PL or SQL variables. Also, RETURN was specified in the parameters clause for a PL or SQL PROCEDURE. E.g. CREATE PROCEDURE proc IS EXTERNAL NAME ... LIBRARY ... PARAMETERS(RETURN INDICATOR SHORT, RETURN);

PLS-00249: Invalid WITH CONTEXT Syntax

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-00248: Invalid Library Syntax

PLS-00248: Invalid Library Syntax

Cause: The LIBRARY syntax was entered incorrectly.

Action: Correct the LIBRARY syntax and recompile.

PLS-00247: LIBRARY name must be specified

PLS-00247: LIBRARY name must be specified

Cause: The LIBRARY name is missing from the external subprogram body.

Action: The LIBRARY name was not specified in the external subprogram body.

PLS-00246: PARAMETER STYLE is unsupported

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-00245: Formals used in the parameters clause must appear exactly once

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 or SQL allows only one declaration of the formal parameter in the PARAMETERS clause.

Action: Correct the PARAMETERS clause.

PLS-00244: Multiple declarations in foreign function formal parameter list

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 or SQL allows only one declaration of the above for each formal parameter in the PARAMETERS clause.

Action: Correct the PARAMETERS clause.

PLS-00243: invalid external type specification for SQLNAME

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-00242: invalid external type specification for CONTEXT

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-00241: invalid external type specification for SQLSTATE

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-00240: Invalid type specification for RETURN indicator, length, tdo, duration

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-00239: invalid external type specification for SQLCODE

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-00238: external parameter name string not found in formal parameter list

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-00237: invalid BY VALUE indicator or length specification

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-00432: implementation restriction: cannot use FORALL and BULK COLLECT INTO together in SELECT statements

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-00431: bulk SQL attributes must use a single index

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-00430: FORALL iteration variable string is not allowed in this context

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-00428: an INTO clause is expected in this SELECT statement

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 or SQL, only a subquery is written without an INTO clause.

Action: Add the required INTO clause.

PLS-00427: RPC defaults cannot use builtins when versions of STANDARD differ

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-00425: in SQL, function argument and return types must be SQL type

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-00424: RPC defaults cannot include Package State

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-00423: ORDER BY item must be the number of a SELECT-list expression

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-00422: no PL or SQL translation for the bindtype given for this bind variable

PLS-00422: no PL or 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 or SQL for binding. However, its datatype is not compatible with any PL or SQL datatype. So, the binding failed.

Action: Change the datatype of the host variable to make it compatible with a PL or SQL datatype.

PLS-00421: circular synonym string

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-00420: can t call builtin routines remotely

PLS-00420: can t call builtin routines remotely

Cause: An attempt was made to call a built-in PL or SQL function remotely, which is not allowed. For example, the code might look like my_sqlerrm := SQLERRMnewyork; or INSERT INTO emp VALUES (my_empno, STANDARD.RTRIMnewyork(my_ename), ...);

Action: Always call built-in functions locally; never specify a database link.

PLS-00419: reference to remote attribute not permitted

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%NOTFOUNDnewyork THEN ...

Action: Do not try to reference a remote cursor attribute.

PLS-00418: array bind type must match PL or SQL table row type

PLS-00418: array bind type must match PL or SQL table row type

Cause: A host array was passed (by an Oracle Precompiler program, for example) to a PL or SQL subprogram for binding to a PL or SQL table parameter. However, the datatypes of the array elements and PL or SQL table rows are incompatible. So, the binding failed.

Action: Change the datatype of the array elements or PL or SQL table rows to make the datatypes compatible.

PLS-00417: unable to resolve string as a column

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-00416: The third argument of DECODE cannot be NULL

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-00415: string is an OUT parameter and cannot appear in a function

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

FOR-loop variable. PLS-00414: no column string in table

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-00413: identifier in CURRENT OF clause is not a cursor name

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

PLS-00412: list of values not allowed as argument to this function or procedure

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) lamp;gt; (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) lamp;gt; (SELECT col3, col4 FROM my_table ...) can be rewritten as WHERE col1 lamp;gt; (SELECT col3 FROM my_table ...) AND col2 lamp;gt; (SELECT col4 FROM my_table ...)

PLS-00411: Number of values in aggregate and in subquery don t match

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-00410: duplicate fields in RECORD,TABLE or argument list are not permitted

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-00409: duplicate variable string in INTO list is not permitted

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-00408: duplicate column string not permitted in INSERT or UPDATE

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-00407: * not allowed here; a list of columns is required

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-00406: length of SELECT list in subquery must match number of assignment targets

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-00405: subquery not allowed in this context

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-00404: cursor string must be declared with FOR UPDATE to use with CURRENT OF

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-00403: expression string cannot be used as an INTO-target of a SELECT or FETCH statement

PLS-00403: expression string cannot be used as an INTO-target of a SELECT or 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-00402: alias required in SELECT list of cursor to avoid duplicate column names

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-00401: different column types between cursor SELECT statement and return value found at string

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-00400: different number of columns between cursor SELECT statement and return value

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-00399: different types of columns in UNION, INTERSECT, or MINUS expression

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-00398: wrong number of columns in UNION, INTERSECT, or MINUS expression

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-00397: Type mismatch in arguments to IN

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-00396: INSERT statement s subquery yields wrong number of columns

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.