PLS–00504
type name_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.
PL/SQL and FIPS Messages
3 – 37
PL/SQL Error Messages
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
PL/SQL tables may not be defined in terms of records or other tables Cause
In a TABLE type definition, a composite datatype (RECORD or TABLE) was mistakenly specified for the column. The single, unnamed column must belong to a scalar datatype such as CHAR, DATE, or NUMBER.
Action
Remove the TABLE type definition, or replace the composite datatype specifier with a scalar datatype specifier.
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–00510
FLOAT cannot have scale
Cause
When declaring a FLOAT variable, 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.
3 – 38
Oracle7 Server Messages
PL/SQL Error Messages
PLS–00700
PRAGMA EXCEPTION_INIT of name must follow declaration of its exception in same block
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 num 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
name 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.