This chapter lists messages that might occur when running the Oracle Precompilers. Also listed are messages that the Oracle runtime library might return to the SQLCA. For each message, the probable cause and corrective action are given. The Oracle Precompilers issue various warning and error messages. For example, the following message code and message statement might appear:

PCC-U-00036: No input file name specified

The message code consists of a prefix, severity code, and sequence number. The prefix PCC shows that the message was generated by an Oracle Precompiler. There are four severity codes. The following table gives their meanings:

Code

Meaning

W

Warning--despite an error, a compilable output file was created.

S

Severe error--despite an error, an output file was created. However, it might not be compilable.

F

Fatal error--no output file was created because of an internal problem or because a resource (such as memory) was unavailable or ran out.

U

Unrecoverable error--no output file was created because an input requirement was not met.

I

Information only--no error or warning was encountered. Information messages are used only for FIPS flagging.

Precompiler Messages

This section lists precompile and runtime error messages that were added since Pro*C/C++, Release 2.1, and Pro*COBOL, Pro*FORTRAN, and Pro*Ada, Releases 1.7. For more information about precompilers, see the precompiler documentation that refers to the programming language in use. The following is a list of Oracle precompiler documentation:

00001-01600: Oracle Precompiler, Version 1 Messages

The precompiler was unable to open a temporary file for internal use. There might be insufficient disk space, too many open files, or read-only protection on the output directory.

Action:

Check that there is enough disk space, that the limit for open files is set high enough (check with the system manager) and that protection on the directory allows opening a file for writing.

PCC-00002 Invalid syntax at column name in line num of file name

Cause:

There is a syntax error in an EXEC statement or the statement is not
properly terminated.

Action:

Correct the syntax of the EXEC statement. If the error occurred at the end of the input file, check that the last EXEC statement is properly terminated.

PCC-00003 Invalid SQL Identifier at column name in line num of file name

Cause:

The symbol in a conditional precompilation statement (such as EXEC ORACLE IFDEF) is invalid, or the name of a SQL descriptor, statement, or cursor is invalid or was not properly declared.

Action:

Check the statement syntax and spelling of the identifier and check that a reserved word was not accidentally used. If necessary, define the identifier in a variable declaration or DECLARE statement ahead of the line in error.

PCC-00004 Mismatched IF/ELSE/ENDIF block at line num in file name

Cause:

There is an EXEC ORACLE ELSE or EXEC ORACLE ENDIF statement without a matching EXEC ORACLE IFDEF statement.

A host variable defined in the Declare Section has an unsupported datatype or has a scale or precision outside the supported range.

Action:

Redefine the host variable using a supported datatype. Check that the scale and precision of a numeric variable are in the accepted range.

PCC-00007 Invalid WHENEVER condition at column name in line num of file name

Cause:

A condition other than SQLERROR, SQLWARNING, or NOT FOUND was specified in an EXEC SQL WHENEVER statement, or one of these was used but spelled incorrectly.

Action:

Correct the spelling of the WHENEVER condition or use a host-language IF statement to test the special condition.

PCC-00008 Invalid WHENEVER action at column name in line num of file name

Cause:

At least one of the following:

· An action other than CONTINUE, GOTO, or STOP was specified in an EXEC SQL WHENEVER statement.

· One of the specified actions was spelled incorrectly.

· The host language does not allow the action (STOP is illegal in Pro*Pascal programs).

· A GOTO label is invalid.

Action:

Check that the host language allows the specified WHENEVER action. If necessary, correct the spelling of the WHENEVER action or correct the
GOTO label.

PCC-00009 Invalid host variable at column name in line num of file name

Cause:

A host variable used in an EXEC SQL statement was not declared in the Declare Section or has an unsupported datatype.

Action:

Declare the host variable in the Declare Section, making sure it has one of the supported datatypes.

PCC-00010 Statement out of place at line num in file name

Cause:

An EXEC statement was not placed properly in the host program. For example, there might be a data manipulation statement in the Declare Section. In a Pro*COBOL program, the Declare Section might be outside the WORKING-STORAGE SECTION.

Action:

Remove or relocate the statement.

PCC-00011 Already in a Declare Section at line num in file name

Cause:

A BEGIN DECLARE SECTION statement was found inside a Declare Section.

Action:

Remove the extra BEGIN DECLARE SECTION statement.

PCC-00012 Not in a Declare Section at line num in file name

Cause:

An END DECLARE SECTION statement without a matching BEGIN DECLARE SECTION statement was found. Either the BEGIN DECLARE SECTION statement is missing or misspelled or the END DECLARE SECTION statement is an extra.

Action:

Add or correct the BEGIN DECLARE SECTION statement or remove the extra END DECLARE SECTION statement.

PCC-00013 Unable to open INCLUDE file name at line num in file name

Cause:

The precompiler was unable to open the input file specified in the INCLUDE statement. Some possible causes follow:

· The filename is misspelled.

· The file does not exist.

· The search path to the file is incorrect.

· File access privileges are insufficient.

· Another user has locked the file.

· There is not enough disk space.

· There are too many open files.

Action:

Check that the file exists, that the search path to the file is correct, that sufficient privileges to access the file have been granted, and that it is not locked by another user. Also, check that there is enough disk space and that the limit for open files is set high enough (check with the system manager).

PCC-00014 Undeclared SQL identifier ident at line num in file name

Cause:

The name of a descriptor, statement, or cursor was not declared or
is misspelled.

Action:

Add or correct the descriptor, statement, or cursor declaration.

PCC-00015 Unrecognized host language syntax ignored at line num in file name

Cause:

The host language syntax used to define a host variable in the Declare Section
is incorrect.

Action:

Check the syntax and the spelling, then correct the declaration.

PCC-00016 Unable to open a cursor at line num in file name

Cause:

The syntax in a SQL statement is faulty. The precompiler was expecting a host variable but found something else.

Action:

Check the syntax and the spelling, then correct the SQL statement.

PCC-00017 Unable to parse statement at line num in file name

Cause:

There is a syntax error in an array declaration. The precompiler was expecting a right bracket (]) but found something else.

Action:

Check the syntax, then correct the array declaration.

PCC-00018 Expected token, but found token at line num in file name

Cause:

The syntax in a SQL statement is faulty. The precompiler found an unexpected or illegal token.

Action:

Check the syntax and the spelling, then correct the SQL statement.

PCC-00019 Unable to obtain bind variables at line num in file name

Cause:

The precompiler was unable to find information about an input host variable (bind variable) used in a SQL statement.

Action:

Check that the input host variable is declared in the Declare Section and used properly in the SQL statement.

PCC-00020 Unable to obtain define variables at line num in file name

Cause:

The precompiler was unable to find information about an output host variable (define variable) used in a SQL statement.

Action:

Check that the output host variable is declared in the Declare Section and used properly in the SQL statement.

PCC-00021 Oracle Error: ORA-nnnnn

Cause:

An Oracle error occurred.

Action:

Refer to the indicated message in the ORA message chapters of this manual.

PCC-00022 Out of space - unable to allocate numbytes

Cause:

The precompiler process ran out of memory.

Action:

Allocate more memory to the process, then retry.

PCC-00023 Unable to log off Oracle

Cause:

An Oracle connection error occurred while the precompiler was trying to log off, probably because Oracle has been shut down.

Action:

Check that Oracle is available, then retry.

PCC-00024 Indicator variablevar has wrong type or length at line num in file name

Cause:

An indicator variable was not declared in the Declare Section as a 2-byte integer. Indicator variables must be defined as 2-byte integers.

Action:

Redefine the indicator variable as a 2-byte integer.

PCC-00025 Undeclared indicator variable var at line num in file name

Cause:

An indicator variable used in a SQL statement was not declared in the Declare Section or its name is misspelled.

Action:

Add or correct the indicator variable declaration.

PCC-00026 Invalid host variable vat at line num in file name

Cause:

A host variable used in a SQL statement was not declared properly. Some possible causes follow:

· It was not declared in the Declare Section.

· Its datatype is not supported.

· Its name is misspelled.

· It is a COBOL group item; in Pro*COBOL, only elementary items are allowed in a SQL statement.

Action:

Add or correct the host variable declaration.

PCC-00027 Redeclared SQL identifier ident at line num in file name

Cause:

The name of a SQL descriptor, statement, or cursor was re-declared (that is, declared twice).

Action:

Check the spelling of the identifier, then, if necessary, remove the
extra declaration.

PCC-00028 Option optnam not legal as EXEC ORACLE OPTION

Cause:

A precompiler option was specified inline in an EXEC ORACLE statement, instead of on the command line. Some options can be specified only on the command line. For example, INAME cannot be specified inline.

Action:

Respecify the precompiler option on the command line, instead of in an EXEC ORACLE statement. To see an online display of the precompiler options, enter the precompiler command (with no options) at the operating-system prompt.

PCC-00029 Ambiguous option optnam

Cause:

The name of a precompiler option was abbreviated ambiguously. For example, MAX= might refer to MAXLITERAL or MAXOPENCURSORS.

Action:

Respecify the full option name or an unambiguous abbreviation. To see an online display of the precompiler options, enter the precompiler command (with no options) at the operating-system prompt.

PCC-00031 Invalid value given for option optnam

Cause:

The value specified for a precompiler option is invalid, probably because the value is misspelled (as in LTYPE=HORT) or out of range (as in PAGELEN=-55).

Action:

Check the value, making sure it is spelled correctly and within the legal range.

PCC-00032 Invalid option optnam

Cause:

The precompiler found an invalid precompiler option name. Some possible causes follow:

· The option name is misspelled.

· The specified option does not exist.

· The equal sign (=) between the option name and value is missing or has space around it.

Action:

Check that the option exists and that its name is spelled correctly. To see an online display of the precompiler options, enter the precompiler command (with no options) at the operating-system prompt. Also check that there is an equal sign between the option name and value.

PCC-00033 Missing operand for option optnam

Cause:

No value was specified for a precompiler option. Either the value is missing or there is space around the equal sign (as in LTYPE=SHORT).

Action:

Check that a value for each option has been specified and that there is no space around the equal sign.

PCC-00036 No input file name specified

Cause:

The input file was not specified on the command line.

Action:

Use the INAME command-line option to specify the input file.

PCC-00037 Unable to log on to Oracle with username. Oracle error number: ora-nnnnn

Cause:

The precompiler was unable to log on to Oracle with the specified username and password. An Oracle error with given number occurred when the logon was attempted.

Action:

Refer to the indicated message in the ORA message chapters of this manual.

PCC-00038 Unable to open a cursor

Cause:

This is an internal error message not usually issued.

Action:

Call customer support for assistance. If the application does not require syntactic or semantic checking of SQL statements and does not use PL/SQL, specify SQLCHECK=NONE on the command line.

PCC-00039 Unable to open input file name

Cause:

The precompiler was unable to open the input file specified by the INAME precompiler option. Some possible causes follow:

· The filename is misspelled.

· The file does not exist.

· The search path to the file is incorrect.

· File access privileges are insufficient.

· Another user has locked the file.

· There is not enough disk space.

· There are too many open files.

Action:

Check that the file exists, that the search path to the file is correct, that sufficient privileges have been granted to access the file, and that it is not locked by another user. Also check that there is enough disk space and that the limit for open files is set high enough (check with the system manager).

PCC-00040 Unable to open listing file name

Cause:

The precompiler was unable to open the listing file specified by the LNAME precompiler option. Some possible causes follow:

· The filename is misspelled.

· The file does not exist.

· The search path to the file is incorrect.

· File access privileges are insufficient.

· Another user has locked the file.

· There is not enough disk space.

· There are too many open files.

Action:

Check that the file exists, that the search path to the file is correct, that sufficient privileges have been granted to access the file, and that it is not locked by another user. Also check that there is enough disk space and that the limit for open files is set high enough (check with the system manager). If a listing file is not needed, specify LTYPE=NONE on the command line.

PCC-00041 Unable to open output file name

Cause:

The precompiler was unable to open the output file specified by the ONAME precompiler option. Some possible causes follow:

· The filename is misspelled.

· The file does not exist.

· The search path to the file is incorrect.

· File access privileges are insufficient.

· Another user has locked the file.

· There is not enough disk space.

· There are too many open files.

Action:

Check that the file exists, that the search path to the file is correct, that sufficient privileges have been granted to access the file, and that it is not locked by another user. Also check that there is enough disk space and that the limit for open files is set high enough (check with the system manager).

PCC-00042 Must include SQLCA file when MODE=ANSI and WHENEVER SQLWARNING used

Cause:

When MODE={ANSI|ANSI14}, an attempt was made to use the WHENEVER SQLWARNING statement without declaring the SQLCA. When MODE={ANSI |ANSI14}, declaring the SQLCA is optional, but to use the WHENEVER SQLWARNING statement, the SQLCA must be declared.

Action:

Remove all WHENEVER SQLWARNING statements from the program or declare the SQLCA by hardcoding it or copying it into the program with the INCLUDE statement.

There is a misplaced clause at the end of an EXEC SQL statement (an AT clause at the end of a SELECT statement, for example), or the action specified in a FOR clause is invalid (for example, FOR:loop INTO...).

Action:

Check the statement syntax, then relocate or correct the misplaced or
invalid clause.

PCC-00047 Unterminated comment/string constant beginning near line num in file name

Cause:

A string constant is missing an ending quotation mark, or a comment is missing an ending delimiter.

Action:

Check that all comments are delimited and all string constants are enclosed by quotation marks.

PCC-00050 Unable to generate descriptor in program unit ending line num in file name

Cause:

The precompiler was unable to generate a descriptor for the compilation unit. This can occur from either of the following:

· a non-existent or improperly implemented Declare Section

· undetected syntax errors near the beginning of the source file or just before the END DECLARE SECTION statement

Action:

Verify that the Declare Section is properly implemented. Then check for syntax errors at the beginning of the compilation unit and before any END DECLARE SECTION statement, and correct as appropriate.

PCC-00051 Size of VARCHAR hostvar at num is larger than 65533 at line num in
file name

Cause:

The declared size of a VARCHAR host variable exceeds the precompiler limit of 65533 bytes.

Action:

Check the Declare Section, making sure the size of each VARCHAR variable does not exceed 65533 bytes.

PCC-00053 FOR variable var is invalid type at line num in file name

Cause:

The count variable in a FOR clause has the wrong datatype. The datatype must be NUMBER or LONG (or be compatible with NUMBER or LONG).

Action:

Check the declaration and check that the count variable has a datatype of NUMBER or LONG (or a compatible Oracle or host-language datatype).

PCC-00054 Expected end-of-statement at column name in line num of file name

Cause:

The precompiler expected to find a statement terminator at the end of an EXEC statement but found something else. This can happen if tabs were embedded in the source code (because the precompiler has no way of knowing how many spaces a tab represents).

Action:

If tabs are embedded in the source code, replace them with spaces. Check the statement syntax and check that each EXEC statement has a terminator. For embedded CREATE {FUNCTION|PROCEDURE|PACKAGE} statements and for embedded PL/SQL blocks, check that the statement terminator is END-EXEC.

Action:

Correct or remove the erroneous CREATE statement.

PCC-00055 Array name not allowed as bind variable at line num in file name

Cause:

A host array was used as a bind (input) variable in the WHERE clause of a SELECT statement. This is not allowed.

Action:

Remove the host array or replace it with a simple host variable.

PCC-00056 FOR clause not allowed in SELECT statement at line num in file name

Cause:

FOR clause was used with a SELECT statement. This is not allowed, as data returned from the last loop in the execution of the SELECT overwrites data returned in a previous loop.

Action:

Remove the FOR clause from the SELECT statement and use a host-language construct to iteratively execute the SELECT statement.

PCC-00060 Both CURSOR and STATEMENT have AT clauses at line num of file name

Cause:

Two AT clauses, one in a DECLARE STATEMENT statement, the other in a DECLARE CURSOR statement, pertain to the same SQL statement. The AT clause may be specified with either DECLARE STATEMENT or DECLARE CURSOR but not with both.

Action:

Remove the AT clause from one of the statements.

PCC-00061 Error at line num, column name. PLS-nnnnn

Cause:

The precompiler found an error in an embedded SQL statement or
PL/SQL block.

PCC-00064 All uses of a given host variable must use identical indicator variables

Cause:

Two or more occurrences of a host variable in an EXEC SQL statement were associated with different indicator variables. This is not allowed.

Action:

Rename the indicator variables so that each occurrence of the host variable is associated with the same indicator variable.

PCC-00065 USERID required, but not specified

Cause:

The SQLCHECK=SEMANTICS option was specified, but the USERID option on the command line was not specified.

Action:

Specify USERID=username/password or enter a username and password when prompted or specify SQLCHECK={SYNTAX|NONE}.

PCC-00066 USERID only used when SQLCHECK=SEMANTICS, USERID ignored

Cause:

The USERID option was specified when SQLCHECK={SYNTAX|NONE}.
This is unnecessary.

Action:

Specify the USERID option only when SQLCHECK=SEMANTICS.

PCC-00067 IRECLEN exceeded. Line num in file name truncated

Cause:

While reading the input file, the precompiler found a line longer
than IRECLEN.

Action:

Either shorten the input line or specify a larger IRECLEN value on the command line.

PCC-00068 Host and indicator variables may not have the same name

Cause:

In an EXEC SQL statement, an indicator variable had the same name as a host variable. The names of a host variable and its associated indicator variable must be different. Also, an indicator variable cannot be used as a host variable.

Action:

Rename the host or indicator variable.

PCC-00069 Host variable var has unsupported datatype at line num in file name

Redefine the host variable in the Declare Section, giving it a
supported datatype.

PCC-00070 Illegal syntax. Exponential value in SQL statement: text

Cause:

The precompiler found a syntax error while parsing a number coded in scientific notation. The precompiler expected to find a signed integer following the exponentiation indicator (E), but found something else.

Action:

Reformat the number correctly.

PCC-00072 Input file name length exceeds 14 characters

Cause:

The filename specified exceeded the maximum length. On some operating systems, the maximum length of a filename is 14 characters.

Action:

Use a filename of 14 or fewer characters.

PCC-00073 Cursor is declared but never OPENed at line num in file name

Cause:

A cursor was DECLAREd but was not referenced in an OPEN statement. This is only an informational message.

Action:

Remove the cursor declaration or code an OPEN statement for the cursor.

PCC-00074 FIPS warning: Multiply defined host variable in line num of file name

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the name of a global host variable was used to declare a local host variable. This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not reuse the names of global host variables to declare local host variables.

PCC-00075 ":" expected before indicator variable

Cause:

An indicator variable was not prefixed with a colon, as required.

Action:

Prefix a colon to the indicator variable in question.

PCC-00076 DISPLAY type must be SIGN LEADING SEPARATE

Cause:

This message is issued only by Pro*COBOL. DISPLAY SIGN LEADING SEPARATE is the only DISPLAY type supported by Pro*COBOL.

Action:

Check the spelling of the variable declaration. If necessary, remove the reference to the unsupported DISPLAY type.

PCC-00077 Colon usage with numeric label in WHENEVER statement is not ANSI

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a numeric WHENEVER... GOTO label was prefixed with a colon. For example, the code might have looked like:

EXEC SQL WHENEVER SQLERROR GOTO :99;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, prefix alphanumeric (but not numeric) WHENEVER... GOTO labels with a colon.

PCC-00078 FIPS warning: Invalid ANSI SQL identifier

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the name given to a host variable:

· is longer than 18 characters,

· does not begin with a letter, or

· contains consecutive or trailing underscores

In the following Pro*C example, the host variable name is 19 characters long and therefore non-compliant:

EXEC SQL BEGIN DECLARE SECTION;

int department_location; -- not ANSI/ISO-compliant

...

EXEC SQL END DECLARE SECTION;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, change the host variable name so that it is <=18 characters long, begins with a letter, and does not contain consecutive or trailing underscores.

PCC-00079 ANSI requires colon on label in WHENEVER statement

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, an alphanumeric WHENEVER... GOTO label was not prefixed with a colon. For example, the offending code might look like:

EXEC SQL WHENEVER NOT FOUND GOTO no_more;

This message is only a warning issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, prefix alphanumeric (but not numeric) WHENEVER... GOTO labels with a colon.

PCC-00080 TYPE identifier already TYPEd

Cause:

The identifier being TYPEd in an EXEC SQL TYPE statement appeared in a previous EXEC SQL TYPE statement. A given identifier can appear in only one EXEC SQL TYPE statement.

Action:

Check the spelling of the identifiers. Use different identifiers in the EXEC SQL TYPE statements, or remove one of the EXEC SQL TYPE statements.

PCC-00081 Scale specification not allowed for given datatype

Cause:

The Oracle external datatype referenced in an EXEC SQL VAR or EXEC SQL TYPE statement does not allow a scale specification.

Action:

Check the precision specification and remove the scale specification.

PCC-00082 Length and scale specifications must be an integer

Cause:

A floating point number or a non-number to specify a length or scale was used. Only integers can be used.

Action:

Correct or remove the length and/or scale specification.

PCC-00083 Bind and define variables not allowed in CREATE statement

Cause:

Host variables cannot appear in a CREATE statement. If the makeup of a CREATE statement cannot be known until run time, a dynamic SQL statement must be used to execute it. That is, the program must accept or build the CREATE statement at run time, store it in a host string, then EXECUTE it.

Action:

Correct or remove the erroneous CREATE statement.

PCC-00085 Error writing to file name

Cause:

The precompiler was unable to write to the named output file. Some possible causes follow:

· Sufficient file access privileges were not defined.

· Another user has locked the file.

· There is not enough disk space.

· There are too many open files.

Action:

Check that sufficient privileges exist to access the file and that it is not locked by another user. Also check that there is enough disk space and that the limit for open files is set high enough (check with the system manager).

PCC-00086 Source file name has zero length

Cause:

The source file specified on the command line contains no code. Consequently, there is nothing for the precompiler to process.

Action:

Specify a valid source file containing embedded SQL statements.

PCC-00087 EXEC SQL TYPE statement not allowed for this host language

Cause:

An EXEC SQL TYPE statement was used with a host language that does not support user-defined datatype equivalencing. This feature is available only in Pro*C and Pro*Pascal.

Action:

Remove the offending EXEC SQL TYPE statement.

PCC-00088 User-defined type identifier expected

Cause:

The user-defined datatype name in an EXEC SQL TYPE statement is missing or misspelled, is a reserved word, is not a legal identifier in the host language or conflicts with a base datatype in that language.

Action:

Check the spelling of the user-defined datatype name. If necessary, declare a valid user-defined datatype. User-defined datatype equivalencing is available only in Pro*C and Pro*Pascal.

PCC-00089 Invalid Oracle TYPE specification

Cause:

The Oracle external datatype name in an EXEC SQL TYPE or EXEC SQL VAR statement is missing or misspelled.

Action:

Check the spelling of the external datatype name. If necessary, supply the missing datatype name.

PCC-00090 Precision/scale specification must be given for DECIMAL datatype

Cause:

A precision and/or scale specification for the Oracle external datatype DECIMAL in an EXEC SQL TYPE or EXEC SQL VAR statement was omitted.

An invalid length or scale for an Oracle external datatype in an EXEC SQL TYPE or EXEC SQL VAR statement was specified.

Action:

Check that a length large enough to accommodate the external datatype is specified. If a scale is specified, check that it lies in the range -84 .. 99.

PCC-00093 Invalid or obsolete option, ignored

Cause:

The precompiler found an option available in a prior version or different host language but not in the current version or host language.

Action:

Remove the option specification.

PCC-00094 Array length for char[n] datatype must be => 2

Cause:

When MODE={ANSI|ANSI14}, a length of less than 2 characters for a char[n] host variable was specified or a simple CHAR variable was specified. When MODE={ANSI|ANSI14}, the length must be at least 2 characters. This message is issued only by the Pro*C Precompiler.

Action:

Correct the declaration so that it specifies a length of at least 2 characters.

FORTRAN source files are expected to have at least one PROGRAM, SUBROUTINE, FUNCTION, or BLOCK DATA statement, which the precompiler uses to detect the beginning of a routine or compilation unit.

Action:

Add one of these statements to the source file.

PCC-00096 Array FETCH not allowed for MODE=ANSI14

Cause:

When MODE=ANSI14, an array SELECT or FETCH was attempted. However, array operations are not allowed when MODE=ANSI14.

Action:

If MODE=ANSI14 must be specified, place the SELECT or FETCH statement in a host-language loop, instead of using the array interface.

PCC-00097 Use of DECIMAL and DISPLAY types allowed only for COBOL and PLI

Cause:

The DECIMAL or DISPLAY external datatype was used in an EXEC SQL VAR statement with an Oracle Precompiler other than Pro*COBOL or Pro*PL/I. These external datatypes are available only in Pro*COBOL and Pro*PL/I.

Action:

Remove the reference to the DECIMAL or DISPLAY external datatype from the EXEC SQL VAR statement.

PCC-00098 Scale specification cannot be used in this context

Cause:

In a Pro*C, Pro*FORTRAN, or Pro*Pascal program, scale in an EXEC SQL TYPE or EXEC SQL VAR statement in the current context cannot be specified.

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a non-integer WHENEVER... GOTO label was in a Pro*Pascal program. For example, the offending code might look like:

EXEC SQL WHENEVER NOT FOUND GOTO 5.0;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, use only integer WHENEVER... GOTO labels in a Pro*Pascal program.

PCC-00101 Lower case 'e' in floating point number is not ANSI

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a lowercase "e" was used in scientific notation. For example, the offending code might look like:

maxnum = 10e38;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, use an uppercase 'E' in scientific notation.

PCC-00102 FOR UPDATE is an Oracle extension

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the FOR UPDATE OF clause was used in a cursor declaration. For example, the offending code might look like:

EXEC SQL DECLARE emp_cursor CURSOR FOR

SELECT ENAME, SAL FROM EMP WHERE DEPTNO = :dept_number

FOR UPDATE OF SAL;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the FOR UPDATE OF clause.

PCC-00103 AT clause is an Oracle extension

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the AT db_name clause was used in a SQL statement. For example, the offending code might look like:

EXEC SQL AT oracle3 COMMIT RELEASE;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the AT db_name clause.

PCC-00104 FOR clause is an Oracle extension

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the FOR clause was used in an array-processing SQL statement. For example, the offending code might look like:

EXEC SQL FOR :limit INSERT INTO EMP (EMPNO, JOB, DEPTNO)

VALUES (:emp_number, :job_title, :dept_number);

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the
FOR clause.

PCC-00105 Keyword WORK required here by ANSI

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the keyword WORK was used in a COMMIT or ROLLBACK statement. For example, the offending code might look like:

EXEC SQL COMMIT WORK RELEASE;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the keyword WORK.

PCC-00106 RELEASE is an Oracle extension to the COMMIT and ROLLBACK statements

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the parameter RELEASE was used in a COMMIT or ROLLBACK statement. For example, the offending code might look like:

EXEC SQL ROLLBACK RELEASE;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the parameter RELEASE.

PCC-00107 The CONNECT statement is Oracle implementation dependent

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, the CONNECT statement was used to log on to Oracle. For example, the offending code might look like:

EXEC SQL CONNECT :username IDENTIFIED BY :password;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, specify the AUTO_CONNECT command-line option instead of using a
CONNECT statement.

PCC-00108 This statement is not supported by ANSI

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a nonconforming SQL statement such as PREPARE was used. For example, the offending code might look like:

EXEC SQL PREPARE sql_statement FROM :sql_string;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the nonconforming SQL statement.

PCC-00109 Dynamic SQL and PL/SQL are Oracle extensions to ANSI SQL

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, dynamic SQL or embedded PL/SQL was used. For example, the offending code might look like:

EXEC SQL EXECUTE

BEGIN

SELECT ...

...

END;

END-EXEC;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use dynamic SQL or embedded PL/SQL.

PCC-00110 Oracle extension to the WHENEVER statement

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a nonconforming keyword such as NOTFOUND, STOP, RAISE, or DO was used in the WHENEVER statement. (Note that NOT FOUND is ANSI-compliant.) For example, the offending code might look like:

EXEC SQL WHENEVER SQLERROR STOP;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use the nonconforming keyword.

The SQLCHECK option was entered inline and specified a level of checking higher than the level specified (or accepted by default) on the command line. This is not allowed. For example, if SQLCHECK={SYNTAX|LIMITED} is specified on the command line, SQLCHECK={SEMANTICS|FULL} cannot be specified inline.

This message is only a warning; the precompiler ignores the inline value and continues processing.

Action:

Revise the EXEC ORACLE statement or specify a lower level of checking on the command line.

PCC-00112 Datatype not supported by ANSI

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a pointer or nonconforming datatype such as VARCHAR was used. For example, the offending code might look like:

EXEC SQL BEGIN DECLARE SECTION;

VARCHAR username[20];

...

EXEC SQL END DECLARE SECTION;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use pointers or nonconforming datatypes.

PCC-00113 Value of DBMS option invalid with given value of MODE option

Cause:

When MODE={ANSI14|ANSI13}, DBMS=V7 was specified, or when MODE=ANSI, DBMS=V6 was specified. These option settings are incompatible. Note that the DBMS option was not available before
release 1.5 of the Oracle Precompilers.

Action:

With DBMS=V7, instead of MODE={ANSI14|ANSI13}, specify MODE={ANSI|ORACLE}. With DBMS=V6, instead of MODE=ANSI, specify MODE={ANSI14|ANSI13|ORACLE} but MODE=ORACLE is recommended.

In a EXEC SQL VAR statement, a VARCHAR or VARRAW external datatype was specified without a length. Unlike other types, the maximum length of the data field must be specified for VARCHAR and VARRAW.

Action:

Add a length specification to the EXEC SQL VAR statement.

PCC-00115 Array required here

Cause:

In an ARRAYLEN statement, the name of a previously declared host array was not specified. The first host variable in an ARRAYLEN statement must be an array. The second host variable, which specifies an array dimension, must be a 4-byte integer. The correct syntax follows:

EXEC SQL ARRAYLEN host_array (dimension);

The ARRAYLEN statement must appear in the Declare Section along with, but somewhere after, the declarations of host_array and dimension.

Action:

Check the spelling of both identifiers in the ARRAYLEN statement. If necessary, supply the missing host array name.

PCC-00116 This array already given in an ARRAYLEN statement

Cause:

The same host array was specified in two different ARRAYLEN statements. A given host array cannot be specified in more than one ARRAYLEN statement.

Action:

Check the spelling of the host array names in both ARRAYLEN statements. Change one of the names so that they refer to different host arrays or remove one of the ARRAYLEN statements.

PCC-00117 Invalid ARRAYLEN length variable type

Cause:

A valid array dimension was not specified in an ARRAYLEN statement. The array dimension must be specified using a previously declared 4-byte integer host variable, not a literal or expression. For example, the offending code might look like:

EXEC SQL ARRAYLEN ename_array (25); -- illegal dimension

Action:

Supply a valid array dimension. If necessary, declare a 4-byte integer host variable for use in the ARRAYLEN statement.

PCC-00118 Use of host variable initialization not supported by ANSI SQL

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically,
a host variable was initialized in its declaration, as shown in the following Pro*C example:

EXEC SQL BEGIN DECLARE SECTION;

int dept_number = 20; -- not ANSI/ISO-compliant

...

EXEC SQL END DECLARE SECTION;

This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not initialize host variables in their declarations.

PCC-00119 Value of const variable in INTO clause will be modified

Cause:

A variable declared with the type specifier const was used in an INTO
clause. Such variables should not be modified and should not be used in
an INTO clause.

Action:

Check the spelling of all identifiers in the INTO clause. If necessary, remove const from the host variable declaration or use a different host variable.

PCC-00120 File I/O error during code generation

Cause:

A file I/O error occurred during code generation. This may be caused by insufficient disk space.

Action:

Check that there is enough disk space.

PCC-00121 Arrays of VARCHAR pointers are not supported

Cause:

An array of pointers was declared, which is not allowed. However,
pointers to scalar types are allowed. With Pro*C, declare pointers to char[n] and VARCHAR[n] variables as pointers to CHARor VARCHAR (with no
length specification).

Action:

Correct or remove the declaration.

PCC-00122 Input file name and output file name are identical

Cause:

On the command line, the same pathname for INAME and ONAME was specified, which designates the precompiler input and output files, respectively.

Action:

Change one of the path/filenames.

PCC-00123 Entire VARCHAR declaration must be on same line

Cause:

In a Pro*C program, a VARCHAR declaration spans more than one line, which is not allowed.

Action:

Revise the declaration so that it uses only one line.

PCC-00124 COMMON_NAME option must be before PROGRAM or subroutine beginning

Cause:

In a FORTRAN program, subroutine, or function, the precompiler option COMMON_NAME was mistakenly specified after the PROGRAM, SUBROUTINE, or FUNCTION statement. If COMMON_NAME is specified inline, its EXEC ORACLE OPTION statement must precede the PROGRAM, SUBROUTINE, or FUNCTION statement.

Action:

Relocate the EXEC ORACLE OPTION statement or specify COMMON_NAME on the command line.

PCC-00126 Could not find or open system configuration file

Cause:

The precompiler was unable to find or open the system configuration file (a text file containing preset command-line options, which the precompiler uses by default). Some possible causes follow:

· The file does not exist.

· The search path to the file is incorrect.

· File access privileges are insufficient.

· There are too many open files.

However, this message is just a warning. Processing continues even if the system configuration file does not exist.

Action:

Check that the file exists, that the search path to the file is correct, and that sufficient privileges exist to access the file. Also check that the limit for open files is set high enough (check with the system manager).

PCC-00127 text

Cause:

This is a generic error message from the command-line processor.

Action:

Correct the indicated error.

PCC-00128 Command line processor severe error

Cause:

The command line processor encountered a severe error.

Action:

After making sure that all the command-line options are specified correctly,
call customer support with a full account of all the options and configuration files used.

PCC-00129 option optnam must be given

Cause:

A required command-line option is missing. For example, the INAME option, which specifies the name of the input file, might be missing.

Action:

Supply the missing command-line option.

PCC-00130 Invalid value val for option optnam

Cause:

The precompiler found an invalid option value. For example, the value might have been misspelled (as in DBMS=6V) or illegal (as in DBMS=V5).

Action:

Check the value, making sure that it is legal and correctly spelled.

PCC-00132 Indicator array size must not be less than its host variable

Cause:

An host variable array was used with an indicator array declared with a smaller dimension. For example:

The precompiler option NLS_LOCAL=YES was used without also specifying MODE=ANSI. The precompiler option MODE=ANSI must be specified if NLS_LOCAL=YES.

Action:

Set the precompiler option MODE=ANSI in addition to NLS_LOCAL=YES or do not set NLS_LOCAL=YES.

PCC-00135 Result Set Cursor usage is not standard SQL

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, an Oracle Result Set Cursor was used. This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action required. However, for ANSI/ISO compliance, do not use Result Set Cursors.

PCC-00136 Invalid SQL_CURSOR declaration

Cause:

An array of SQL_CURSOR host variables was declared or, if Pro*COBOL, a PICTURE clause was specified in the SQL_CURSOR declaration. In Pro*FORTRAN, a length specification (i.e., "*n") on the SQL_CURSOR declaration may have been specified. These usages are not supported.

Action:

Check that the SQL_CURSOR variable is not declared as an array or, if Pro*COBOL, that no PICTURE clause is specified for the SQL_CURSOR. In Pro*FORTRAN, check that there is no length specification (i.e., "*n") for the SQL_CURSOR.

PCC-00137 Invalid use of SQL_CURSOR host variable

Cause:

A SQL_CURSOR variable was used in an INTO or WHERE clause. SQL_CURSOR variables can be used only where ordinary cursor identifiers or, in a PL/SQL block, a cursor would normally be used.

Action:

Remove the SQL_CURSOR variable reference from the INTO or WHERE clause, or use a host variable of another type in the INTO or WHERE clause.

PCC-00138 Result Set Cursors are not implemented in this precompiler

Cause:

There was an attempt to reference a host variable as a cursor reference. Cursor variables are not implemented in Pro*Pascal or Pro*PL/I.

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, one of the following statements was used:

· CREATE FUNCTION

· CREATE PROCEDURE

· CREATE PACKAGE

· CREATE TRIGGER

These statements are Oracle extensions to the ANSI/ISO SQL standards. This informational message is issued by the FIPS Flagger when FIPS=YES.

Action:

No action is required. However, for ANSI/ISO compliance, do not use any of these statements.

PCC-00141 Thread Safety is not implemented in this precompiler

Cause:

There has been an attempt to use CONTEXT sql statements. The thread safety feature is not implemented in PRO*Pascal, Pro*PL/I, or Pro*C 1.x.

Action:

Rewrite your host-language code without using runtime contexts.

PCC-00142 No EXEC SQL CONTEXT USE statement encountered

Cause:

No EXEC SQL CONTEXT USE statement was encountered and the option THREADS=YES was requested.

Action:

Ensure that the necessary context variable (of type sql_context) has been declared, ALLOCATEd, and USEd prior to any executable SQL statements.

PCC-00143 Runtime context variable not of correct type

Cause:

The runtime context variable referenced in an EXEC SQL CONTEXT USE statement is not of type sql_context.

Action:

Declare your runtime context variable of type sql_context.

PCC-00144 UNSAFE_NULL=YES allowed if MODE=ORACLE and DBMS=V7

Cause:

UNSAFE_NULL=YES was specified on the command line, but either the MODE option was not ORACLE or the DBMS option was not V7.

Action:

Specify MODE=ORACLE and DBMS=V7 when using UNSAFE_NULL=YES.

PCC-00145 This statement can only be used with THREADS=YES

Cause:

An EXEC SQL ENABLE THREADS or EXEC SQL CONTEXT statement was used with THREADS=NO specified when precompiling.

Action:

Specify THREADS=YES when running the precompiler, or remove the EXEC ENABLE THREADS or EXEC SQL CONTEXT statement from the source code.

PCC-01000 You are not authorized to run Pro*COBOL

Cause:

The authorization or license to run the Pro*COBOL Precompiler has expired.

Action:

Call customer support for assistance.

PCC-01001 Your Pro*COBOL authorization is about to expire

Cause:

The authorization or license to run the Pro*COBOL Precompiler is about
to expire.

Action:

Call customer support for assistance.

PCC-01002 Invalid character char in indicator area at line num in file name

Cause:

In a Pro*COBOL Precompiler program, only a blank, hyphen (-), asterisk (*), slash (/), or letter "D" is allowed in the indicator area, but the precompiler found another character.

Action:

Remove or replace the invalid character. If the FORMAT=ANSI option is specified, check for an end-of-line in column 7.

PCC-01003 Invalid continuation at line num in file name

Cause:

In a Pro*COBOL program, a continuation line was completely blank, except for the continuation character.

Action:

Remove or replace the empty continuation line.

PCC-01004 In an EXEC statement at end-of-file

Cause:

In a Pro*COBOL input file, the last EXEC statement was not
terminated properly.

Action:

Terminate the last EXEC statement with an END-EXEC.

PCC-01005 PROCEDURE DIVISION not found

Cause:

The precompiler could not find the PROCEDURE DIVISION header in a Pro*COBOL program. Some possible causes follow:

· A keyword in the header is missing or misspelled.

· There is an apostrophe in the REMARKS section (the precompiler mistook the apostrophe for the beginning of a string literal).

· There is an unterminated literal in the WORKING-STORAGE SECTION.

· The wrong value for the FORMAT option was specified.

Action:

Check that the PROCEDURE DIVISION header is in place and spelled correctly, that there is no apostrophe in the REMARKS section, that all literals in the WORKING-STORAGE SECTION are terminated, and that the right value for the FORMAT option is specified.

PCC-01006 EXEC statement cannot begin in Area A at line num in file name

Cause:

In a Pro*COBOL program, EXEC statements must begin in Area B, but the precompiler found a statement beginning in Area A.

Action:

Move the statement rightward so that it begins in Area B.

PCC-01007 WORKING-STORAGE SECTION not found

Cause:

The precompiler could not find the WORKING-STORAGE SECTION header in a Pro*COBOL program, probably because a keyword is missing or misspelled, or the wrong value for the FORMAT option might have been specified.

Action:

Check that the WORKING-STORAGE SECTION header is in place and spelled correctly and that the right value for the FORMAT option is specified.

PCC-01008 Multiple element records not allowed in Declare Section

Cause:

A few COBOL compilers do not allow group items to be passed as parameters in a CALL statement. (Check the COBOL compiler user's guide.) If the compiler is one of these, group items within the Declare Section can contain only one elementary item.

Action:

Assign each host variable its own group item.

PCC-01009 For HOST=COB74, a SQL statement must be followed by ELSE or "."

Cause:

In a Pro*COBOL program, an EXEC SQL statement is followed by another statement in the same sentence. An EXEC SQL statement must be the last statement in a COBOL-74 sentence and so must be terminated by the keyword ELSE or a period.

Action:

Change the program logic, making the EXEC SQL statement the last statement in the sentence.

PCC-01010 Invalid use of NULL character in character literal

Cause:

A null character (binary zero) was found in a string literal. This is not allowed by Pro*COBOL.

Action:

Remove the null character from the string literal.

PCC-01011 USAGE IS BINARY clause must be terminated by "." on same line

Cause:

The period terminating the USAGE IS BINARY clause must be on the same line as the USAGE clause. This message only occurs on operating systems that support the COMP5=YES command line option of Pro*COBOL, where COMP-5 is substituted for BINARY.

Action:

Check that the period terminating the USAGE IS BINARY clause is on the same line as the USAGE clause.

PCC-01012 DATA DIVISION not found

Cause:

The Pro*COBOL precompiler did not find a DATA DIVISION in the input source file. Pro*COBOL applications are required to have a DATA DIVISION.

Action:

Add a DATA DIVISION to the input source file.

PCC-01013 Invalid use of PIC N array variable "variable_name" at line line_number in file name

Cause:

A PIC N variable was declared using an OCCURS clause. Tables of PIC N variables are not supported by the Pro*COBOL precompiler.

Action:

Declare the PIC N variable without an OCCURS clause or, if the PIC N variable is not used in any SQL statements, declare it outside the Declare Section.

PCC-01014 "VARYING" not supported with PIC N PICTURE clause

Cause:

The keyword VARYING was used in a PIC N variable declaration.

Action:

Remove the keyword VARYING from the variable declaration. If you want to declare a PIC N VARCHAR variable, specify the precompiler option VARCHAR=YES and declare the variable as an implicit VARCHAR group item as illustrated by the following example:

EXEC SQL BEGIN DECLARE SECTION END-EXEC.

...

01 ENAME.

05 ENAME-LEN PIC S9(4) COMP.

05 ENAME-ARR PIC N(20).

...

EXEC SQL END DECLARE SECTION END-EXEC.

PCC-01015 Cannot equivalence PIC N variable name

Cause:

A PIC N variable or an implicit VARCHAR group item (with a PIC N
variable as an elementary item) was used in an EXEC SQL VAR statement.
This is not allowed.

Action:

Do not use a PIC N variable in an EXEC SQL VAR statement. If you want an equivalence to an Oracle type using an EXEC SQL VAR statement, use a PIC X variable instead of a PIC N variable.

PCC-01016 "N" character literals not supported in embedded PL/SQL

Cause:

An "N" character literal was used within a PL/SQL block.

Action:

Remove the "N" character literal from the PL/SQL block.

PCC-01100 You are not authorized to run Pro*FORTRAN

Cause:

The authorization or license to run the Pro*FORTRAN Precompiler has expired.

Action:

Call customer support for assistance.

PCC-01101 Your Pro*FORTRAN authorization is about to expire

Cause:

The authorization or license to run the Pro*FORTRAN Precompiler is about
to expire.

Action:

Call customer support for assistance.

PCC-01102 Invalid label at line num in file name

Cause:

The Pro*FORTRAN Precompiler found an invalid FORTRAN statement label in columns 1 through 6.

Action:

Correct or remove the statement label.

PCC-01200 You are not authorized to run Pro*C

Cause:

The authorization or license to run the Pro*C Precompiler has expired.

Action:

Call customer support for assistance.

PCC-01201 Your Pro*C authorization is about to expire

Cause:

The authorization or license to run the Pro*C Precompiler is about to expire.

Action:

Call customer support for assistance.

PCC-01202 Identifier ident truncated to 31 characters

Cause:

A host identifier (the name of a host variable, for example) was truncated to the maximum length (31 characters) allowed by the precompiler.

Action:

No action required. This message is just informational.

PCC-01300 You are not authorized to run Pro*PL/I

Cause:

The authorization or license to run the Pro*PL/I Precompiler has expired.

Action:

Call customer support for assistance.

PCC-01301 Your Pro*PL/I authorization is about to expire

Cause:

The authorization or license to run the Pro*PL/I Precompiler is about to expire.

Action:

Call customer support for assistance.

PCC-01400 You are not authorized to run Pro*Pascal

Cause:

The authorization or license to run the Pro*Pascal Precompiler has expired.

Action:

Call customer support for assistance.

PCC-01401 Your Pro*Pascal authorization is about to expire

Cause:

The authorization or license to run the Pro*Pascal Precompiler is about
to expire.

Action:

Call customer support for assistance.

PCC-01500 You are not authorized to run Pro*Ada

Cause:

The authorization or license to run the Pro*Ada Precompiler has expired.

Action:

Call Oracle Customer Support for assistance.

PCC-01501 Your Pro*Ada authorization is about to expire

Cause:

The authorization or license to run the Pro*Ada Precompiler is about to expire.

Action:

Call Oracle Customer Support for assistance.

PCC-01510 No package, procedure, or function statement seen in name

Cause:

Every Ada source file must have a package, procedure, or function statement. The precompiler did not find one.

Action:

Add the appropriate statement(s) to the source file and rerun Pro*Ada.

PCC-01511 Identifier on line num in file name was too long for code generated in
file name

Cause:

An identifier used in the host program is of a length that causes precompiler-generated code to exceed the length limitation on source lines.

Action:

Use a shorter identifier or use the ORECLEN option to increase the allowed line length.

PCC-01512 Invalid EXEC SQL INCLUDE of file name found at line num in file name

Cause:

The EXEC SQL INCLUDE statement is not allowed in Pro*Ada.

Action:

Embed required source text directly in the Pro*Ada file. Use the "with" context clause to include required packages.

PCC-01513 FIPS warning: Unsupported datatype in line num of file name

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a host variable was declared with a non-ANSI/ISO standard type.

Action:

No action required. However, for ANSI/ISO compliance, use only ANSI/ISO standard types.

PCC-01515 FIPS warning: Undeclared host variable hostvar at line num in file name

Cause:

An Oracle extension to the ANSI/ISO SQL standard was used. Specifically, a host variable was declared outside of a Declare Section.

Action:

No action required. However, for ANSI/ISO compliance, declare the host variable within a Declare Section.

02010-02400: Oracle Precompiler, Release 2.0 Messages

PCC-02010 Found end-of-file while scanning string literal

Cause:

A string in a SQL statement, which should be delimited by single quotation marks, was not terminated properly.

Action:

Check that all strings are delimited.

PCC-02011 Found identifier greater than 128 characters (truncated)

Cause:

The precompiler found an identifier that was too long.

Action:

Shorten the identifier. SQL identifiers should be limited to 18 characters.

PCC-02012 Did not find a matching quote for CHAR constant

Cause:

A character constant with a single quotation mark was not terminated.

Action:

Terminate the character constant.

PCC-02013 Unknown escape sequence

Cause:

The precompiler found an escape sequence that it could not process inside a string literal. This error can arise when multibyte character strings that can contain shift-in or shift-out escape sequences are used.

Action:

Correct the string representation.

PCC-02014 Syntax error at line num, column colnam, file name

Cause:

The precompiler detected an error in C or embedded SQL syntax. This message is followed by a more specific error message.

Action:

Correct the syntax error.

PCC-02015 Unable to open include file

Cause:

The precompiler could not open a header file that was specified using the #include preprocessor directive or the EXEC SQL INCLUDE statement. This can happen if the file specification is inaccurate or if read permission or read access rights on the file or on one or more of the directories in the path were
not granted.

Action:

Recheck that the file specification is correct, that the file exists, and that read permission have been granted so that the file can be read.

PCC-02016 Include file pathname is too long

Cause:

The pathname for include files exceeded the maximum length of 80 characters.

Action:

Move the include file, or create an environment variable or logical to shorten the pathname.

PCC-02017 Unable to open output file

Cause:

The precompiler could not open an output file. This could be a generated code output file (.c file) or a listing file. This message can result from many causes. For example:

· A pathname for a specified output file contains a non-existent directory.

· An operating-system error occurred because the file system or disk
is full.

· Write permission on the specified directory or directories in the path do not exist.

Action:

Track down the cause of the error, as suggested above, and correct it.

PCC-02018 Found end-of-file while scanning comment

Cause:

A C comment, either in C code or in an embedded SQL statement, was not terminated.

Action:

Find the unterminated comment and terminate it with */.

PCC-02019 Preprocessor warning at line num, column colnam, file name

Cause:

This message indicates that a warning condition occurred as the precompiler was doing the preprocessor pass. A more specific warning message will follow this message.

Action:

Correct the condition according to the action specified for the message
that follows.

PCC-02020 Preprocessor error at line num, column colnam, file name

Cause:

This message indicates that an error condition occurred as the precompiler
was in the preprocessing phase. A more specific error message will follow
this message.

Action:

Correct the error according to the action specified for the message that follows.

PCC-02021 Found newline while scanning string literal

Cause:

A string constant contains a newline character. For example,

char x[] = "Hello

world";

Action:

Remove the newline character.

PCC-02022 Found end of file while scanning a SQL statement

Cause:

The precompiler encountered an end of file while parsing an exec sql statement.

Action:

Add the statement terminator(;) or complete the exec sql statement.

PCC-02023 Found end of file while scanning a PL/SQL statement

Cause:

The precompiler encountered an end of file while parsing a PL/SQL statement (EXEC SQL EXECUTE ...).

Action:

Complete the PL/SQL statement.

PCC-02024 NCHAR literals are not permitted inside PL/SQL blocks

Cause:

The precompiler found a multi-byte character string in an embedded PL/SQL statement. For example, the offending code might look like

EXEC SQL execute

declare

name char(10) := N'Matsuda';

BEGIN

....

END;

END-EXEC;

Action:

Remove multi-byte character string from the PL/SQL block or rewrite the declaration without using NLS_CHAR.

PCC-02025 NLS_LOCAL should be TRUE when using NCHAR literals

Cause:

The precompiler detected a multi-byte character host variable
(NCHAR literal) when the option NLS_LOCAL was not set to TRUE on the command line. When NLS_LOCAL=TRUE, the runtime library (SQLLIB) performs blank-padding and blank-stripping for host variables that are of multi-byte types.

PCC-02044 CMD-LINE: Illegal or out of range value for option: option string

Cause:

A value specified for a command-line option was not within the accepted range. For example, the range for the MAXOPENCURSORS option is 5 to 256. If a value outside this range is specified, this message is triggered.

An option name was partially specified on the command line that made it non unique. For example, in the command line

proc in=t.pc

the "in" option can imply either the INAME or INCLUDE option.

Action:

Provide sufficient characters on the command line to make the option
name unique.

PCC-02046 CMD-LINE: Unable to open config file: filename

Cause:

A non-existent user configuration file was specified on the command line with the config option.

Action:

Provide a valid filename for the configuration file.

PCC-02047 CMD-LINE: Option is not allowed inline: option string

Cause:

An option was entered inline that can only be entered on the command line or in a configuration file. For example, the offending code might look like

EXEC ORACLE OPTION (NLS_CHAR=<name>);

The NLS_CHAR option can only be entered on the command line or in a configuration file.

Action:

Remove the option from the source file, and specify it on the command line.

PCC-02066 CMD-LINE: Could not find or could not open system config file

Cause:

The system configuration file has a standard name (pmscfg.h) and a location that is operating-system dependent. On UNIX systems, it is located in the $ORACLE_HOME/proc directory. If a file named pmscfg.h is not found in the standard location, this warning message is issued.

The precompiler connected to Oracle but could not invoke the PL/SQL engine. This error can result if an earlier release of Oracle7 is used without the Procedural Option

Action:

To use PL/SQL, upgrade to a more recent release of Oracle7.

PCC-02101 Unable to open input file

Cause:

The precompiler could not open the input file. This is the .pc file specified in the INAME= option. This means that the file does not exist, that a directory was incorrectly specified in the pathname, or that the person running the precompiler does not have read permission for the file.

This message could also result from operating-system errors. For example, an unmounted file system or disk I/O errors, could trigger this error.

The username was specified on the command line without a password.
For example:

proc sqlcheck=full iname=sample1.pc userid=scott/

Action:

Re-enter the command line, and include the password.

PCC-02104 Unable to connect to Oracle

Cause:

The precompiler could not connect to Oracle with the username, password, and, if applicable, database link that was supplied. Note that this is a precompiler message, not a run time message. This means that the USERID option value, either on the command line or in a configuration file,
was incorrect.

Action:

Check that the username and password are current and correct. Run SQL*DBA or SQL*Plus and verify that connection can be made using that username
and password.

PCC-02105 Unable to open list file

Cause:

The precompiler could not open the listing file. This message can result from many causes. For example:

· A pathname for a specified listing file contains a non-existent directory.

· An operating-system error occurred because the file system or disk
is full.

· Write permission on the specified directory has not been granted.

Action:

Track down the cause of the error, as suggested above, and correct it.

PCC-02106 Userid only used when SQLCHECK=FULL, userid ignored

Cause:

The USERID option was specified on the command line, but SQLCHECK was not equal to FULL or SEMANTICS. The USERID has no effect, unless SQLCHECK=FULL or SQLCHECK=SEMANTICS.

Action:

This is a warning message only.

PCC-02107 You may not specify PARSE = FULL when CODE = CPP

Cause:

The PARSE=FULL and CODE=CPP options were both specified on the command line. The PARSE=FULL option invokes the C parser, which does
not understand any C++ constructs generated by the precompiler with CODE=CPP option.

Action:

Set the PARSE option to either NONE or PARTIAL if the CODE=CPP option
is specified.

PCC-02108 UNSAFE_NULL=YES allowed only if MODE=ORACLE and DBMS=V7 or V6_CHAR

Cause:

UNSAFE_NULL=YES was specified on the command line, but either the MODE option was not ORACLE or the DBMS option was not V7 or V6_CHAR.

Action:

Specify MODE=ORACLE and DBMS=V7 or V6_CHAR when using UNSAFE_NULL=YES.

PCC-02109 SQLCHECK=NONE is not yet supported, using SYNTAX

Cause:

SQLCHECK=NONE was specified on the command line but is not supported in this release. SQLCHECK=SYNTAX was used instead.

Action:

This is a warning message only. To avoid this warning, specify SQLCHECK=SYNTAX or SQLCHECK=SEMANTICS.

PCC-02129 CMD-LINE: Client supplied static options table is invalid

Cause:

This is an internal error message not usually issued.

Action:

Call Oracle customer support.

PCC-02132 CMD-LINE: Could not allocate memory

Cause:

This is an internal error message not usually issued.

Action:

Call Oracle customer support.

PCC-02133 CMD-LINE: Error processing string function

Cause:

This is an internal error message not usually issued. It indicates that a C string function, such as strcpy or strlen, returned an error.

Action:

Call Oracle customer support.

PCC-02134 CMD-LINE: Null option supplied

Cause:

A zero length option was specified on the command line.

Action:

Re-enter the command line with a valid option.

PCC-02135 CMD-LINE: User asked for help

Cause:

This is a final message that the precompiler issues when information about the command-line options has been requested. For example, if the command

proc ?

is issued to get a list of the current default values for the command-line options, this message appears at the end of the list.

Action:

No action required.

PCC-02138 CMD-LINE: Internal consistency error

Cause:

This is an internal message for program exceptions. An unexpected condition was encountered by the command-line processor and a consistency check failed. Some possible causes of this message include:

· invalid command-line options

· memory corruption

Action:

Report this error to Worldwide Support after gathering the following information:

· the events that led to the error

· the attempted operations that led to the error

· any unusual circumstances prior to this error

PCC-02144 CMD-LINE: Blank characters are not allowed on either side of an equal sign (=)

Cause:

An equal sign (=) was either immediately preceded or followed by a blank character.

Action:

Precompile your program again without blank characters on either side of any equal sign (=) on the command line.

PCC-02200 Found unrecognized punctuation sequence

Cause:

This error indicates that the precompiler parser encountered a badly-formed identifier or keyword

Action:

Correct the syntax.

PCC-02201 Found syntax error

Cause:

This general message precedes one or more specific messages that detail the nature of the error.

Action:

No action required. Correct the errors diagnosed in the following message(s).

PCC-02202 No TYPEDEF name was given

Cause:

The precompiler parser encountered aTYPEDEF statement that had no name after the type specification. For example

typedef int;

Action:

Correct the syntax.

PCC-02203 Found end of file when not expected

Cause:

The parser can emit this message when a general syntax error occurs, for example, an unmatched `{' or `('.

Action:

Correct the syntax.

PCC-02204 EXEC SQL INCLUDE not permitted from within an included file

Cause:

EXEC SQL INCLUDE statements cannot be nested. Also, an EXEC SQL INCLUDE statement cannot be put inside a file that is included using the #include preprocessor command.

Action:

Recode the program so that the nested include statement is not required.

PCC-02205 Parser error at line num, column colnam, file name

Cause:

The precompiler parser encountered a syntax error, either in C code or in SQL code. A more specific message should follow.

Action:

No action required for this message. Take the appropriate action for any following messages.

PCC-02206 Host variables are not permitted within a DDL statement

Cause:

A Data Definition Language statement cannot use host variables. For example, the statement

CREATE TABLE :table_name (c1 char(10));

is illegal, because the name of the table in a CREATE TABLE statement cannot be represented using a host variable.

The precompiler parser encountered a #DEFINE directive that had no macro name associated with it. For example,

#define

Action:

Correct the syntax.

PCC-02208 No filename specified in #include statement

Cause:

The precompiler parser encountered a #INCLUDE directive that had no filename associated with it. For example,

#include

Action:

Specify appropriate filename with the #INCLUDE directive, or correct
the syntax.

PCC-02209 Macro invocation has incorrect number of arguments

Cause:

A macro invocation in the source does not have the same number of arguments as the macro definition in the #DEFINE line.

Action:

Correct the macro reference or the macro definition.

PCC-02210 C++ punctuation sequences are not permitted

Cause:

C++ punctuation sequences are not supported by the Pro*C/C++ precompiler.

Action:

Rewrite your C++ code without using punctuation sequences and precompile
it again.

PCC-02301 Cannot open input file for reading

Cause:

The semantic analysis phase of the precompiler could not re-open the input file to generate output code.

Action:

Check that the input file and its directory's protections and privileges do not change during precompilation.

PCC-02302 Cannot open code generation output file

Cause:

The precompiler was not able to open one or both of the temporary files that are required for code generation. The user executing the precompiler must have write permission (and/or the appropriate privileges) on the current directory.

Action:

Check that permission exists to create files in the current directory.

PCC-02303 Cannot open include file

Cause:

The precompiler was not able to open a header file specified using the
#INCLUDE preprocessor directive or the EXEC SQL INCLUDE statement. This can happen if the file specification is inaccurate or if read permission or read-access rights on the file or on one or more of the directories in the path have not been granted.

Action:

Recheck that the file specification is correct, that the file exists, and that read permission has been granted so that the file can be read.

PCC-02304 Invalid declaration of C function

Cause:

A C function using invalid syntax was declared.

Action:

Consult a C programming manual and correct the declaration.

PCC-02305 Illegal mixing of new and old style C function declarations

Cause:

All C functions using either the traditional style (K&R style) function declarations or the new (ANSI) style must be declared; the two styles cannot
be mixed.

Action:

Adopt a consist declaration style for functions.

PCC-02306 Illegal name of C function

Cause:

A C function was declared with a name that is not a legal C identifier.

Action:

Use legal C identifiers for all function names.

PCC-02307 Void can only be used when single parameter

Cause:

A function can be declared or defined using the following syntax:

int func1(void)

to indicate that the function has no parameters. void can be used only once in this case.

Action:

Remove the extra voids in the function definition or declaration.

PCC-02308 Identifier required in this function definition

Cause:

A function definition written in ANSI C must have both the name and the type for all parameters.

Action:

Rewrite the function definition so that it contains the name of each parameter.

PCC-02309 Illegal formal parameter declaration

Cause:

A formal parameter in a function declaration was specified without giving
its type.

Action:

Include the types of all parameters in function declarations.

PCC-02310 Formal parameter VARCHARs must be declared as pointers

Cause:

Many C compilers allow structures to be passed to and returned from functions. Although a VARCHAR is implemented as a C struct, VARCHARs must be passed to a function as pointers.

A VARCHAR array with more than two dimensions was declared. Multidimensional arrays are not supported as host variables.

Action:

Recode the application to remove multidimensional array usage.

PCC-02313 Malformed VARCHAR declaration - missing length

Cause:

When a VARCHAR is declared, a length specification is mandatory. For example, the following VARCHAR declaration is meaningless, hence illegal:

VARCHAR v1[];

Action:

Specify the length for each declared VARCHAR.

PCC-02314 Cannot evaluate constant SIZEOF expression

Cause:

A SIZEOF operator was used where a precompiler expression was expected.

Action:

Eliminate theSIZEOFoperator.

PCC-02315 Cannot evaluate expression as a constant.

Cause:

The specified expression does not evaluate to a constant. Such expressions are required, for example, as the length of a VARCHAR.

Action:

Replace the expression with one that does evaluate to a constant integer

PCC-02316 Illegal operator in constant expression

Cause:

A non-arithmetic operator was present in the expression.

Action:

Rewrite the expression to eliminate the non-arithmetic operator.

PCC-02317 Illegal cast type expression

Cause:

A illegal cast is present in the expression.

Action:

Remove the illegal cast.

PCC-02318 Missing type expression

Cause:

The specified expression is missing the declaration of a type.

Action:

Specify a type for the expression.

PCC-02319 Expression type does not match usage

Cause:

The type of a variable does not match its usage. For example, in dynamic SQL, a host variable containing the text of a SQL statement must be declared as a C character type or be equivalenced to the SQL type STRING.

Action:

Remove the declaration.

PCC-02320 Arithmetic expression does not have correct operand types

Cause:

The arithmetic expression must be specified with integral types.

Action:

Rewrite the expression using integral types.

PCC-02321 Only subtraction between two pointers is permitted

Cause:

Pointer values cannot be added, multiplied, or divided.

Action:

Recode to avoid this error message.

PCC-02322 Found undefined identifier

Cause:

An identifier used in a SQL statement was not defined. For example, a cursor name was referenced that had not been declared, or in a DECLARE CURSOR statement, a statement name was used that had not been PREPAREd.

Action:

Check that all SQL identifiers, such as cursor names and statement names, have been defined before use.

PCC-02326 Illegal structure reference operation

Cause:

A structure component using invalid syntax was referenced. For example, a -> operator was used instead of a required `.' operator.

Action:

Correct the invalid reference.

PCC-02327 Struct or struct pointer required

Cause:

A scalar host variable was used in a context where a structure (or its pointer)
is required.

Action:

Make the host variable a structure or add more scalar host variables to satisfy the SQL syntax requirements.

PCC-02328 Undefined struct member

Cause:

A structure component was referenced that was not declared as part of
the structure.

Action:

Redefine the structure.

PCC-02330 Expecting an expression of integer type

Cause:

The expression does not evaluate to an integer. For example, a SQL FOR expression must evaluate to an integral type.

Action:

Rewrite the expression.

PCC-02331 Undefined SQL identifier

Cause:

All SQL identifiers must be defined before they are used. This message can result when a CURSOR or STATEMENT is not declared (defined) before
being referenced.

Action:

Define the identifier.

PCC-02332 Attempted to redefine SQL identifier

Cause:

A SQL identifier (such as a cursor name) can be defined only once.

Action:

Do not redefine the identifier. Use a different name.

PCC-02333 SQL identifier was not declared as a statement

Cause:

A SQL statement identifier was referenced in a DECLARE... CURSOR statement that was not PREPAREd.

Action:

Check that all SQL statement names have been declared. Remember that SQL statement names are identifiers, not variables, and that they are local to the precompilation unit.

PCC-02334 SQL identifier was not declared as a cursor

Cause:

A cursor name was used in an OPEN, FETCH, or CLOSE statement that had not been DECLAREd.

Action:

Check that all SQL cursor names have been declared. Remember that cursors are identifiers, not variables, and that they are local to the precompilation unit.

PCC-02335 Body of cursor must name statement identifier

Cause:

In a Dynamic SQL Method 4 application, the DECLARE... CURSOR statement must name a statement identifier that has been PREPAREd in a preceding statement. The PREPARE statement must physically (not logically) precede the DECLARE command.

Action:

This error message is followed by another message that gives the line and column of the reference to the statement. Recode the application.

Indicator variables associated with host variables cannot be used in EXEC IAF statements such as GET and PUT in a user exit.

Action:

Eliminate the indicator variables. If feasible (for example with Forms V4), use EXEC TOOLS statements, which do allow indicator variables. See the Programmer's Guide to the Oracle Precompilers for more information of EXEC IAF and EXEC TOOLS statements.

PCC-02349 Precision must be specified for this type

Cause:

In a VAR or TYPE statement, certain Oracle types require that the precision be specified. For example, VARCHAR2 or CHAR.

No action required. Correct the error(s) reported in the following message(s).

PCC-02354 A file included with #INCLUDE cannot contain SQL statements

Cause:

The Pro*C Precompiler reads header files referenced in #INCLUDE directives and uses the values defined in them. But the precompiler never generates code using statements in header files, so use of SQL statements in these files
is illegal.

Action:

Move the SQL statement(s) into the main body of the application or use EXEC SQL INCLUDE to check that the included file is precompiled.

PCC-02355 Invalid or obsolete option, ignored

Cause:

A command-line option that is not used in Pro*C Release 2.0 was specified. For example, the option AREASIZE is no longer valid with precompilers used with the Oracle7 Server.

Action:

No action required. This is an informational message.

PCC-02356 Warning at line num, column colnam, file name

Cause:

This is a generic warning message. It precedes a more specific warning.

Action:

No action required. Correct the error(s) indicated in the following messages.

PCC-02357 Function calls may not be used as host variable expressions

Cause:

Only objects that are lvalues (that resolve to an address) can be host variables. Because a function call is not an lvalue, one cannot be used in place of a
host variable.

Action:

Recode the application.

PCC-02358 Identifier following ARRAYLEN must be the name of an array

Cause:

A declared array must be specified as the argument for an ARRAYLEN statement. Declare the array textually before the ARRAYLEN statement. See
the Programmer's Guide to the Oracle Precompilers for the syntax of the ARRAYLEN statement.

Action:

Correct the statement, specifying a host array as the argument.

PCC-02359 Identifier specifying ARRAYLEN dimension must be an integer

Cause:

The expression that specifies the ARRAYLEN dimension must evaluate to an integer. For example, the statement

EXEC SQL ARRAYLEN my_array(1.3)

cannot be parsed.

Action:

Correct the statement, using an integral dimension.

PCC-02360 This array type is invalid for use with ARRAYLEN statement

Cause:

Arrays of some host variables types are not allowed and hence also cannot be used in ARRAYLEN statements. VARCHAR is an example.

Action:

Specify an array with a datatype that can be used in host arrays.

PCC-02361 Use of ARRAYLEN with SQL host arrays is ignored

Cause:

ARRAYLEN is only valid with arrays that can be bound in PL/SQL blocks.

Action:

Use an appropriate array type.

PCC-02362 Host variable not declared within SQL Declare Section

Cause:

When MODE=ANSI is specified at precompile time, all host variables must be declared inside Declare Sections. Remember that MODE=ANSI refers to ANSI SQL, not ANSI C.

If the host variable is a structure, the associated indicator variable must also be a structure.

Action:

Recode the application.

PCC-02364 Host structure and its indicator must have the same number of fields

Cause:

When a structure containing indicator variables is declared and associated with a host structure, the indicator structure must contain the same number of fields as the host structure. This is so even when some of the indicators will not be used or even when it would not make sense to do so (for fields constrained as NON NULL, for example).

Action:

Redeclare the indicator structure.

PCC-02365 Host and its indicator variable must have the same array dimensions

Cause:

When associating an array of indicators with a host array, it is good practice
to make the indicator array the same length as the host array. It should never
be shorter.

Action:

This is a warning message. The smallest array size will determine the number of items fetched, inserted, or updated.

PCC-02366 Command line argument MODE=ANSI may not be used with DBMS=V6

Cause:

The semantics of certain operations (such as character comparison) in Oracle Version 6 are not 100% compliant with the ANSI/ISO SQL standards. When V6 semantics are requested, using the DBMS=V6 or DBMS=V6_CHAR option, precompilation with MODE=ANSI is not permitted.

Action:

Do not use ANSI mode with the V6 options.

PCC-02367 Indicator variables must be declared as type short

Cause:

The only C type allowed for indicator variables is short. An array of indicator variables must be an array of shorts.

Action:

Redeclare the indicator variables and/or indicator arrays.

PCC-02368 An EXEC TOOLS host variable context name is not type char

Cause:

If a host variable is used to define a context name in an EXEC TOOLS GET CONTEXT or EXEC TOOLS SET CONTEXT statement, the host variable must be a character type.

Action:

Redeclare the context name host variable.

PCC-02369 An EXEC TOOLS host pointer variable is not a pointer

Cause:

The host variable specifying an EXEC TOOLS context must be a pointer type

Action:

Redeclare the variable, making sure that it is a pointer.

PCC-02370 An EXEC TOOLS message host variable is not type char

Cause:

If a host variable is used to define a context name in an EXEC TOOLS GET CONTEXT or EXEC TOOLS SET CONTEXT statement, the host variable must be a character type.

Action:

Redeclare the context name host variable.

PCC-02371 Illegal FOR clause

Cause:

The argument of a FOR clause must be specified as an integer or as an identifier containing an integer.

Action:

Rewrite the FOR clause.

PCC-02372 FOR clause not allowed in a SELECT statement

Cause:

A SQL statement containing a SELECT command cannot contain a FOR clause. The meaning of such a statement would be unclear.

Action:

Rephrase the SELECT statement, removing the FOR clause.

PCC-02373 Invalid declaration in EXEC SQL DECLARE section

Cause:

An improper declaration was placed in a Declare Section. This message is usually caused by including an EXEC SQL TYPE or EXEC SQL VAR declaration in a Declare Section.

Action:

Move the declaration outside the Declare Section.

PCC-02374 SQLCHECK value exceeds command line value

Cause:

The value assigned to the SQLCHECK option in an EXEC Oracle statement in a program was greater than the value given either on the command line or greater than the default value if no SQLCHECK option was given on the command line.

The order of the option values is SEMANTICS > SYNTAX > NONE.

When this warning message is issued, the original value of SQLCHECK (the default or the command-line value) stays in effect.

Action:

Remove or recode the EXEC Oracle option(s) in the .pc source file to avoid this warning message.

PCC-02375 SQL statement found outside the body of a function

Cause:

A SQL statement other than a declarative, datatype equivalence or WHENEVER statement was found outside the body of a function when PARSE=FULL.

Action:

Move the SQL statement inside the body of a function.

PCC-02376 You may not declare SQLCODE when DEF_SQLCODE = TRUE

Cause:

The DEF_SQLCODE option may not be specified if a SQLCODE declaration already explicitly appears in the program.

Action:

Remove the SQLCODE declaration from the program or specify DEF_SQLCODE=NO (the default).

PCC-02377 Arrays of implicit VARCHARs are not permitted

Cause:

An array of implicit VARCHARs was declared when HOST_VARCHAR=TRUE.

Action:

Rewrite the implicit VARCHAR declaration without using arrays.

PCC-02378 Invalid type for National Language character variable

Cause:

A variable declared as a National Language character using the NLS_CHAR option was not declared as a char or implicit VARCHAR.

Action:

Declare the variable as a char or implicit VARCHAR or do not specify using the NLS_CHAR option.

PCC-02379 Cannot equivalence National Language character variables

Cause:

A National Language character variable (specified using the NLS_CHAR option) has undergone datatype equivalencing using either the EXEC SQL VAR or TYPE statements.

Action:

Do not equivalence National Language character variables.

PCC-02380 NLS_LOCAL should be TRUE when using NLS_CHAR

Cause:

NLS_CHAR was used to specify National Language character variables without specifying NLS_LOCAL=TRUE.

Action:

Specify NLS_LOCAL=TRUE. Note that in future releases, this will no
longer apply.

PCC-02381 Cannot use National Language character variables inside PL/SQL

Cause:

A variable or fixed length National Language character variable was used in an embedded PL/SQL block.

Action:

Remove the variable from the block or use another one having a legal
bind type.

PCC-02382 You must specify MODE = ANSI when using NLS_CHAR

Cause:

NLS_CHAR was used to specify NLS multi-byte character variables without specifying MODE=ANSI.

Action:

Specify MODE=ANSI on the command line.

PCC-02383 Arrays of National Language variables are not permitted

Cause:

A variable used as a bind or define variable declared using NLS_CHAR was declared as an array of National Language character strings.

Action:

Rewrite the declaration without using arrays or choose not to specify using NLS_CHAR.

PCC-02384 Missing array length specifier

Cause:

An array declaration was given without an array length specifier.

Action:

Provide the length for the array declaration.

PCC-02385 You may not specify DBMS = V6_CHAR when using NLS_CHAR

Cause:

The DBMS=V6_CHAR option was specified on the command line while indicating which host variables are to be treated by the precompiler as NLS multi-byte character variables. A multi-byte character string must be null-terminated, but if the DBMS=V6_CHAR option is specified, the precompiler pads the character arrays with blanks up to the length of the array without the null-terminator.

Action:

Remove the DBMS=V6_CHAR option from the command line.

PCC-02386 Use of the AT clause is not permitted here

Cause:

An explicit AT clause was used with an ALLOCATE statement or a FETCH/CLOSE statement also using a SQL_CURSOR declaration.

Action:

Remove the AT clause.

PCC-02387 Expecting an expression of type sql_cursor

Cause:

A host bind variable was used in an ALLOCATE, FETCH or CLOSE statement that was not declared as a result set sql_cursor.

Action:

Declare the variable to be of type sql_cursor.

PCC-02388 Arrays not allowed in FROM/WHERE clause of SELECT statement

Cause:

A host array was used in the WHERE clause of a SELECT-INTO statement.

Action:

Rewrite the SELECT statement without using arrays or use a cursor.

PCC-02389 Arrays not allowed as input bind variables in SELECT list

Cause:

A host array was used in the SELECT list of a SELECT-INTO statement.

Action:

Rewrite the SELECT statement without using arrays in SELECT list.

PCC-02390 No EXEC SQL CONTEXT USE statement encountered

Cause:

No EXEC SQL CONTEXT USE statement was encountered and the option THREADS=YES was requested.

Action:

Ensure that the necessary context variable (of type sql_context) has been declared and that has been ALLOCATEd and USEd prior to any executable SQL statements.

Note

This error is only detected by Pro*C/C++ (beginning with release 2.2) and only if PARSE=FULL.

PCC-02391 Runtime context variable not of correct type

Cause:

The runtime context variable referenced in an EXEC SQL CONTEXT USE statement is not of type SQL_CONTEXT.

Action:

Declare your runtime context to be of type SQL_CONTEXT.

PCC-02392 You are already in an EXEC SQL DECLARE SECTION

Cause:

A SQL DECLARE SECTION appears nested inside another one.

Action:

Do not nest DECLARE SECTIONS. Remove any nested inner ones.

PCC-02393 SQL statement found inside an EXEC SQL DECLARE SECTION

Cause:

An executable SQL statement appears inside a DECLARE SECTION.

Action:

Move the SQL statement into the body of a function.

PCC-02394 Input file name and output filename are identical

Cause:

The values of INAME and ONAME are the same, or the default output filename is the same as that specified by ONAME.

Action:

Use ONAME to specify a different filename for the output file.

PCC-02395 A VARCHAR cannot be declared in file filename, which is included using #include

Cause:

A declaration for a VARCHAR host variable was found in a file that was included using the #include preprocessor directive.

Action:

Use an EXEC SQL INCLUDE statement if you need to include a file that declares a VARCHAR host variable.

02100-02139: Oracle Runtime Library SQL Messages

The following error messages might be issued at run time by SQLLIB, the Oracle runtime library.

SQL-02100 Out of memory (i.e., could not allocate)

Cause:

SQLLIB was unable to allocate enough memory to execute the program.

Action:

Allocate more memory to the user session, then rerun the program. If the error persists, call customer support for assistance.

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02104 Inconsistent host cache. No cursor cache available

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02105 Inconsistent cursor cache. Global cursor not found

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02106 Inconsistent cursor cache. Invalid Oracle cursor number

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02107 Program too old for runtime library; please re-precompile it

Cause:

The program was precompiled by an older version of the Oracle Precompilers, which is incompatible with this release of SQLLIB.

Action:

Precompile the program with a newer version of the Oracle Precompilers.

SQL-02108 Invalid descriptor passed to run-time library

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02109 Inconsistent host cache. Host reference is out of range

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02110 Inconsistent host cache. Invalid host cache entry type

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02111 Heap consistency error

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02112 SELECT ... INTO returns too many rows

Cause:

A SELECT ... INTO statement returned more rows than can be stored in the host variable provided.

Action:

There are three possible solutions:

· Use the precompiler option SELECT_ERROR=NO.

· Declare a host variable with a larger array dimension.

· Declare a cursor or cursor variable for the select statement.

SQL-02113 Unable to open message file

Cause:

SQLLIB was unable to find or open the file, ora_sqllib:sqlli*.msb.

Action:

Check that ora_sqllib is properly defined, and that a sqlli*.msb file exists and
is readable.

SQL-02114 Invalid SQL Cursor usage: trying to CLOSE a CLOSEd cursor

Cause:

An attempt was made to CLOSE a cursor that was already CLOSEd with MODE={ANSI|ANSI14}. A CLOSEd cursor can be re-CLOSEd only when MODE={ORACLE|ANSI13}.

Action:

When MODE={ANSI|ANSI14}, verify that a cursor is not already CLOSEd before trying to CLOSE it. Specify MODE={ORACLE|ANSI13} if a CLOSEd cursor is to be re-CLOSEd.

SQL-02115 Code interpretation problem -- check COMMON_NAME usage

Cause:

With Pro*FORTRAN, this error occurs if the precompiler option COMMON_NAME is specified incorrectly. With other Oracle Precompilers, this error occurs when the precompiler cannot generate a segment of code.

Action:

With Pro*FORTRAN, when using COMMON_NAME to precompile two or more source modules, make sure to specify a different common name for each module. With other Oracle Precompilers, if the error persists, call customer support for assistance.

SQL-02116 FATAL ERROR: Reentrant code generator gave invalid context

Cause:

This internal error typically indicates a memory-related error.

Action:

Check the program for memory-related errors, such as invalid pointers or array-bounds violations.

SQL-02117 Invalid SQL Cursor usage: trying to OPEN an OPENed cursor

Cause:

An attempt was made to OPEN an cursor that was already OPENed with MODE={ANSI|ANSI14|ANSI13}. An open cursor can be re-OPENed only when MODE=ORACLE.

Action:

When MODE={ANSI|ANSI14|ANSI13}, verify that a cursor is not already OPEN before trying to OPEN it. Specify MODE=ORACLE if an OPENed cursor is to be re-OPENed to avoid reparsing.

SQL-02118 Invalid row for a WHERE CURRENT OF operation

Cause:

An attempt was made to reference a nonexistent row using the CURRENT OF clause in an UPDATE or DELETE statement. This happens when no FETCH has been executed or when FETCH returns a "no data found" error that the program fails to trap.

Action:

Check that the last cursor operation succeeded and that the current row of the cursor is valid. The outcome of a cursor operation can be checked in two ways: implicit checking with the WHENEVER statement or explicit checking of SQLCODE in the SQLCA.

SQL-02119 Invalid HSTDEF argument

Cause:

A non-null pointer was given for an HSTDEF as the second argument to a SQLRCN call when the first argument was also used. Either the first or the second argument to SQLRCN must be null.

Action:

Pass a null pointer in either the first or second argument to SQLRCN.

SQL-02120 First and second arguments to SQLRCN both null

Cause:

Both the first and second arguments to SQLRCN were null. An HSTDEF must be passed into SQLRCN in the form of either an OCI LDA (first argument) or as an HSTDEFpointer itself (second argument).

Action:

Pass either an OCI LDA or a HSTDEF, but not both.

SQL-02121 Invalid host name

Cause:

The host name passed into a SQLFCN call was not used in a previous call
to SQLRCN.

Action:

Use the same identifier used in the corresponding SQLRCNcall.

SQL-02122 Invalid OPEN or PREPARE for this database connection

Cause:

An attempt was made to execute an OPEN or PREPARE statement using a cursor that is currently open for another database connection and, therefore, cannot be used for this connection.

Action:

Close the cursor to make it available for this connection or use a different cursor for this connection.

SQL-02123 Context referenced in EXEC TOOLS GET CONTEXT statement not found

Cause:

The context name given in the EXEC TOOLS GET CONTEXT statement was never stored with an EXEC TOOLS SET CONTEXT statement.

Action:

Use the EXEC TOOLS SET CONTEXT statement to save any contexts to be retrieved later.

SQL-02124 NULL value returned by EXEC TOOLS statement

Cause:

An EXEC TOOLS statement returned a null to a host variable that lacks an indicator variable. This error occurs only when MODE=ANSI. When MODE=ORACLE, although the value of the host variable is indeterminate, no error is generated.

Action:

Associate an indicator variable with each host variable to which nulls might
be returned.

SQL-02125 Connect error, can't get error text

Cause:

No connection (not even to the default host) was available, so SQLLIB could not get the message text for the Oracle error that occurred. However, SQLLIB returns the Oracle error number, which can be used to look up the message.

The precompiler found a negative number of array elements in the N or F variable of the SQLDA (SQL Descriptor Area, which is used with dynamic SQL Method 4). Before executing the DESCRIBE statement, N must be set to the dimension of the descriptor arrays. After executing the DESCRIBE statement, N must be reset to the actual number of variables DESCRIBEd, which is stored in the F variable.

Action:

Check that the N and F variables are set to non-negative values.

SQL-02127 Precompiler/SQLLIB version mismatch

Cause:

The program was linked to an older version of SQLLIB, which is incompatible with this release of the Oracle Precompilers.

Action:

Relink the program with the appropriate version of SQLLIB.

SQL-02128 Sessions still exist, not logged off

Cause:

A host was not removed ("logged off") from SQLLIB because XA still has sessions associated with that host.

Action:

Before calling SQLXDH to drop a host, XA must either drop all sessions for that host or set the doit_anyway flag.

SQL-02129 FETCHed number of bytes is odd

Cause:

The program tried to FETCH an invalid column value into a multi-byte NLS host variable. Specifically, the column did not contain valid double-byte data.

Action:

Make sure the column contains only double-byte data. To verify this, use SQL*Plus or Server Manager.

SQL-02130 EXEC TOOLS interface is not available

Cause:

An attempt was made to link with a version of an Oracle tool that does not support the EXEC TOOLS interface.

Action:

Either upgrade the Oracle tool, or use the EXEC IAF interface.

SQL-02131 Runtime context in use

Cause:

Your application attempted to execute a SQL statement using a runtime context that is already in use.

Action:

Rewrite the application either to wait for one thread to complete before executing another SQL statement with the same runtime context, or to allocate and use a separate runtime context for each thread.

SQL-02132 Unable to allocate runtime context

Cause:

An attempt to allocate a runtime context failed.

Action:

This error typically occurs when the process memory is low. Allocate more memory and run the application again.

SQL-02133 Unable to initialize process for use with threads

Cause:

This is an internal error.

Action:

Call customer support.

SQL-02134 Invalid runtime context

Cause:

The runtime context associated with an executable SQL statement was not properly allocated.

00250-00300: PCF FIPS Messages

This section contains messages that are generated when you specify the precompiler command-line option FIPS=YES and use an Oracle extension to the ANSI/ISO embedded SQL standard. If you wish your code to comply with the standard, do not use the Oracle extension described in the message.