PCC-02409: Expecting an expression of some REF type

PCC-02409: Expecting an expression of some REF type

Cause: The expression is not a REF type. For example, some host variables in the Navigational CREATE and DEREF statements are required to be declared of some REF type.

Action: Rewrite the expression or declare the variable to be a REF.

PCC-02408: Expecting an expression of some Object type

PCC-02408: Expecting an expression of some Object type

Cause: The expression is not an Object type. For example, many host variable expressions in the Navigational statements require that the variable be declared of some Object type.

Action: Rewrite the expression or declare the variable to be an Object.

PCC-02407: Object and REF types do not match

PCC-02407: Object and REF types do not match

Cause: In an OBJECT CREATE or DEREF statement, the types of the given Object and its associated REF do not match.

Action: Make sure that the Object and its REF have the same type. The type information is generated by OTT and should appear in the header file which OTT creates.

PCC-02406: Expecting the form RETURN(ING( REF INTO :lamp;lt;lamp;nbsp;reflamp;gt; only

PCC-02406: Expecting the form RETURN(ING( REF INTO :lamp;lt;lamp;nbsp;reflamp;gt; only

Cause: When using the RETURNING clause in an OBJECT CREATE statement, only a single REF INTO :lamp;lt;lamp;nbsp;host variablelamp;gt; is expected. This error occurs if the expression list to which REF belongs is greater than one or if there are more than one host variables supplied in the into list.

Action: Rewrite the RETURNING clause as per the given specification.

PCC-02405: Variable is of undefined type

PCC-02405: Variable is of undefined type

Cause: No declaration was found for the type identifier of the variable.

Action: Provide a valid declaration for the type of the host variable. If using objects in your program, check that the OTT-generated header for the object type was #included and that the typefile was specified in the INTYPE option on the Pro*C command line.

PCC-02404: This indicator variable must be declared as a pointer type

PCC-02404: This indicator variable must be declared as a pointer type

Cause: The specified indicator variable was not declared as pointer type.

Action: Declare the indicator variable to be a pointer type.

PCC-02403: Invalid indicator variable type for this host variable

PCC-02403: Invalid indicator variable type for this host variable

Cause: The type of the indicator variable is not appropriate for the specified host variable.

Action: Change the type of the indicator variable to a valid type. Refer to the Programmers Guide to the ORACLE Pro*C or C++ Precompiler for a discussion of appropriate indicator variable declarations.

PCC-02402: Pro*C option OBJECTS=YES is required when using the object cache

PCC-02402: Pro*C option OBJECTS=YES is required when using the object cache

Cause: The object cache will be used for this host variable, but OBJECTS=NO was specified on the Pro*C command line.

Action: Specify OBJECTS=YES on the Pro*C command line when using the object cache.

PCC-02401: Host variable arrays of this type are currently not supported

PCC-02401: Host variable arrays of this type are currently not supported

Cause: Host variable arrays of the specified type are not supported.

Action: Rewrite your program so that there are no arrays of this type.

PCC-02400: This host variable must be declared as a pointer type

PCC-02400: This host variable must be declared as a pointer type

Cause: The specified host variable was not declared as a pointer type.

Action: Declare the host variable to be a pointer type.

PCC-02399: Illegal CHAR_MAP option value for DBMS=V6. Option ignored.

PCC-02399: Illegal CHAR_MAP option value for DBMS=V6. Option ignored.

Cause: A CHAR_MAP option other than CHAR_MAP=VARCHAR2 was specified inline. Since DBMS=V6, this option is ignored for a character or string variable in the offending statement.

Action: Either set DBMS to something other than V6, or specify CHAR_ MAP=VARCHAR2.

PCC-02398: Indicator ignored in this statement for this type

PCC-02398: Indicator ignored in this statement for this type

Cause: An indicator variable was used in a host or indicator variable pair for some type in a statement that did not require or need one. Typically, indicator variables are not used in ALLOCATE and FREE statements for types other than object or collection types. They are also not used in OBJECT CREATE or DEREF statements for REF types.

Action: Remove the use of the indicator for the type in the specified statement. It will be ignored otherwise.

PCC-02397: VARCHAR declarations not permitted in #include file

PCC-02397: VARCHAR declarations not permitted in #include file

Cause: A VARCHAR declaration was found in a file included using a #include form.

Action: Use the EXEC SQL INCLUDE form to include files with VARCHAR declarations instead.

PCC-02396: Illegal use of arrays inside an array of structs

PCC-02396: Illegal use of arrays inside an array of structs

Cause: An array of a struct that contained arrays of scalars or two-dimensional char or VARCHAR fields was used as a host variable.

Action: Rewrite the struct so that there are no scalar arrays or two-dimensional char or VARCHAR fields.

PCC-02395: Using arrays of structs requires that the struct be named

PCC-02395: Using arrays of structs requires that the struct be named

Cause: An array of some unnamed struct was used as a host variable. When using arrays of structs, the struct requires a name or tag.

Action: Provide a name for the struct.

PCC-02394: Input file name and output filename are identical

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-02393: SQL statement found inside an EXEC SQL DECLARE SECTION

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-02392: You are already in an EXEC SQL DECLARE SECTION

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-02391: Runtime context variable not of correct type

PCC-02391: Runtime context variable not of correct type

Cause: The host variable in a EXEC SQL CONTEXT USE statement or in the RETURNING clause of a REGISTER CONNECT statement was not declared to be of type SQL_CONTEXT.

Action: Declare the runtime context variable to be of type SQL_CONTEXT.

PCC-02390: No EXEC SQL CONTEXT USE statement encountered

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.

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

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-02388: Arrays not allowed in FROM or WHERE clause of SELECT statement

PCC-02388: Arrays not allowed in FROM or 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-02387: Expecting an expression of type sql_cursor

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-02386: Use of the AT clause is not permitted here

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 or CLOSE statement also using a SQL_CURSOR declaration.

Action: Remove the AT clause.

PCC-02385: CHAR_MAP disallowed when using NLS_CHAR and NLS_ LOCAL=TRUE

PCC-02385: CHAR_MAP disallowed when using NLS_CHAR and NLS_ LOCAL=TRUE

Cause: The CHAR_MAP option was specified while indicating which host variables are to be treated by the precompiler as NLS multi-byte character variables. This mapping cannot be performed with the option NLS_ LOCAL=TRUE. This error also occurs when DBMS=V6 is used in conjunction with NLS_CHAR and NLS_LOCAL=TRUE.

Action: Remove either the CHAR_MAP option or set NLS_LOCAL=FALSE. Ensure that DBMS is not set to V6.

PCC-02384: Missing array length specifier

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-02383: Expecting an expression of type OCIExtProcContext

PCC-02383: Expecting an expression of type OCIExtProcContext

Cause: The type of the bind variable given in a REGISTER CONNECT USING statement was not (pointer to) OCIExtProcContext.

Action: Declare a variable having type (pointer to) OCIExtProcContext and use it in the REGISTER CONNECT USING statement.

PCC-02382: You must specify MODE=ANSI when using NLS_LOCAL=YES

PCC-02382: You must specify MODE=ANSI when using NLS_LOCAL=YES

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

Action: Specify MODE=ANSI on the command line when using NLS_ LOCAL=TRUE.

PCC-02380: Cannot specify a connect mode when altering a user password

PCC-02380: Cannot specify a connect mode when altering a user password

Cause: An attempt was made to connect in either SYSOPER or SYSDBA mode while at the same time trying to change passwords using the ALTER AUTHORIZATION clause in the same CONNECT statement.

Action: Changing passwords while connecting in SYSOPER or SYSDBA mode is prohibited. Rewrite the connect statement by either removing the ALTER AUTHORIZATION cluase or the CONNECT MODE clause.

PCC-02379: Cannot equivalence National Language character variables

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-02378: Invalid type for National Language character variable

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-02377: Arrays of implicit varchars are not permitted

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-02376: You may not declare SQLCODE when DEF_SQLCODE = TRUE

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 explicitely appears in the program.

Action: Remove the SQLCODE declaration from the program or specify DEF_ SQLCODE=NO (the default).

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

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-02374: SQLCHECK value exceeds command line value

PCC-02374: SQLCHECK value exceeds command line value

Cause: The value given 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 SEMANTICSlamp;gt;SYNTAXlamp;gt;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-02373: Invalid declaration in EXEC SQL DECLARE section

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 of the SQL DECLARE section.

PCC-02372: FOR clause not allowed in SELECT statement

PCC-02372: FOR clause not allowed in 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-02371: Illegal FOR clause

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-02370: An EXEC TOOLS MESSAGE host variable is not type char

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

Cause: f a host variable is used to define a context name in an EXEC TOOLS GET CONTEXT or EXEC TOOLS SET CONTEXT statement, that host variable must be of a character type.

Action: Declare the message to a host variable of a char type.

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

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-02368: An EXEC TOOLS host variable context name is not type char

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, that host variable must be of a character type.

Action: Redeclare the context name to a host variable of a char type.

PCC-02367: This indicator variable must be declared as type short

PCC-02367: This indicator variable must be declared as type short

Cause: An indicator for a host variable of this type must have the C type short. An array of such indicators must be an array of shorts.

Action: Declare the indicator variable or indicator array as type short.

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

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 ^ are not 100% compliant with the ANSI or 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 V6 options.

PCC-02365: Indicator array size cannot be smaller than host array size

PCC-02365: Indicator array size cannot be smaller than host array size

Cause: An indicator array must have dimension greater than or equal to the corresponding host variable array dimension.

Action: Change the dimension of the indicator array.

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

PCC-02364: Host struct 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 variable with the correct number of fields.

PCC-02363: Indicator variable must be a structure

PCC-02363: Indicator variable must be a structure

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

Action: Recode the application to create an indicator variable as a structure.

PCC-02362: Host variable not declared within SQL DECLARE section

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.

Action: Add the EXEC SQL BEGIN DECLARE SECTION... EXEC SQL END DECLARE SECTION statements around all host variable declarations.

PCC-02361: Use of ARRAYLEN with SQL bind arrays is ignored

PCC-02361: Use of ARRAYLEN with SQL bind arrays is ignored

Cause: ARRAYLEN is only valid with arrays that can be bound in PL or SQL blocks.

Action: Use an appropriate array type.

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

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 and DATE are examples.

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

PCC-02359: Identifier specifying ARRAYLEN must be a 4-byte integer

PCC-02359: Identifier specifying ARRAYLEN must be a 4-byte 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 dimesnsion.

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

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-02357: Function calls may not be used as host variable expressions

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-02356: Warning at line number, column number, file string:

PCC-02356: Warning at line number, column number, file string:

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 message(s).

PCC-02355: Invalid or obsolete option, ignored

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-02354: A file included with #include may not contain SQL statements

PCC-02354: A file included with #include may not 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-02353: Semantic error at line number, column number, file string:

PCC-02353: Semantic error at line number, column number, file string:

Cause: This error message precedes a more specific error message.

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

PCC-02352: out of bounds bind position from PL or SQL

PCC-02352: out of bounds bind position from PL or SQL

Cause: PL or SQL requested a bind position that does not exist.

Action: Contact ORACLE customer support.

PCC-02351: illegal datatype equivalencing operation

PCC-02351: illegal datatype equivalencing operation

Cause: The datatype specified could not be equivalenced, or the syntax was incorrect in the VAR or TYPE statement.

Action: See the Programmer s Guide to the Oracle Precompilers for a list of the datatypes that can be equivalenced and the correct syntax of the VAR or TYPE statement.

PCC-02350: cannot equivalence this SQL type

PCC-02350: cannot equivalence this SQL type

Cause: Datatype or variable equivalencing to the datatypes NUMBER or DECIMAL cannot be used. See the Datatype Equivalencing section in the Programmer s Guide to the Oracle Precompilers for more information.

Action: Use the appropriate datatype for the application.

PCC-02349: precision must be specified for this type

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.

Action: Indicate the precision.