|Oracle8i Error Messages
For information about Pro*C/C++, refer to the Pro*C/C++ Precompiler Programmer's Guide.
PCS-00301 cannot reopen input file for reading
Cause: The semantic analysis phase of the precompiler could not reopen the input file to generate the output code.
Action: Check that the input file and its directory protection and privileges do not change during precompilation.
PCS-00302 cannot open code generation output file "string"
Cause: Pro*C was unable to open one or both temporary files 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 directory where you precompile.
PCS-00303 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.
PCS-00304 invalid declaration of C function
Cause: A C function using invalid syntax was declared.
Action: Consult a C programming manual and correct the declaration.
PCS-00305 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.
PCS-00306 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.
PCS-00307 void can only be used when single parameter
Cause: A function can be declared or defined using the following syntax:
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.
PCS-00308 identifier required in this function declaration
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.
PCS-00309 illegal formal parameter declaration
Cause: A formal parameter to a function was specified without giving its type.
Action: Rewrite the function declaration and include types of all parameters in function declarations.
PCS-00310 formal parameter VARCHARs should 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.
Action: Take the address of a VARCHAR when it is passed to a function. See the Pro*C/C++ Precompiler Programmer's Guide for more information.
PCS-00311 cannot have VARCHAR bit fields
Cause: Host variables cannot contain bit fields.
Action: Recode the application to remove the bit fields.
PCS-00312 arrays of VARCHAR greater than 2 dimensions not allowed
Cause: A VARCHAR variable having more that 2 dimensions was declared. Multidimensional arrays are not supported as host variables.
Action: Recode the application to remove multidimensional array usage.
PCS-00313 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:
Action: Specify the length for each declared VARCHAR.
PCS-00314 cannot evaluate constant sizeof expression
Cause: A SIZEOF operator was used where a precompiler expression was expected. For example, as the length of a varchar.
Action: Eliminate the SIZEOF operator in this instance.
PCS-00315 cannot evaluate expression as 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.
PCS-00316 illegal operator in constant expression
Cause: A non-arithmetic operator was present in a constant expression.
Action: Rewrite the expression to eliminate the non-arithmetic operator.
PCS-00317 illegal cast type expression
Cause: An illegal cast is present in the expression.
Action: Remove the illegal cast.
PCS-00318 missing type expression
Cause: The specified expression is missing the declaration of a type.
Action: Specify a type for the expression.
PCS-00319 expression type does not match usage
Cause: The type of a variable does not match is 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.
PCS-00320 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.
PCS-00321 only subtraction between two pointers is permitted
Cause: Pointer values cannot be added, multiplied, or divided. The only arithmetic operation permitted with pointers is subtraction.
Action: Recode to avoid this error message.
PCS-00322 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. Provide a declaration for the variable and/or its type identifier.
PCS-00323 found typedef name used in an expression (expecting a value)
Cause: The name of a TYPEDEF was found where a variable was expected.
Action: Rewrite the expression and remove the reference to the TYPEDEF.
PCS-00324 found variable name used as a typedef name
Cause: The name of a variable was found where a TYPEDEF was expected.
Action: Rewrite the expression and specify the correct TYPEDEF reference.
PCS-00325 illegal indirection operation
Cause: An attempt was made to use a non-pointer type as a pointer.
Action: Rewrite the expression.
PCS-00326 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.
PCS-00327 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.
PCS-00328 undefined struct member
Cause: A structure component was referenced that was not declared as part of the structure.
Action: Redefine the structure member.
PCS-00329 found reference to undeclared function
Cause: A function was referenced that was not declared. All function references must be declared.
Action: Declare the function.
PCS-00330 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.
PCS-00331 undefined SQL identifier
Cause: All SQL identifiers must be declared before they are used. This message can result when a CURSOR or STATEMENT is not declared (defined) before being referenced.
Action: Define the SQL identifier before it is used.
PCS-00332 attempted to redefine SQL identifier
Cause: A SQL identifier (such as a cursor name) can be defined only once.
Action: Do not redefine the SQL identifier. Use a different name.
PCS-00333 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.
PCS-00334 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.
PCS-00335 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.
PCS-00336 host variable expression has invalid type
Cause: The host variable was declared using a C type that is not permitted as a host variable. See the Pro*C/C++ Precompiler Programmer's Guide for a list of the permissible C types for host variables.
Action: Use a permissible host variable type.
PCS-00337 cannot declare multi-dimensioned array for this type
Cause: Host variable arrays of scalars with more than 1 dimension cannot be declared. The only host variables allowed to be multi-dimensioned are CHAR and VARCHAR.
Action: Rewrite the variable declaration.
PCS-00338 structure contains a nested struct or union
Cause: A structure used as a host variable may not have structures or unions nested within it.
Action: Rewrite the variable declaration.
PCS-00339 host variables cannot be of union types
Cause: A C union as a host variable cannot be used.
Action: This error message is followed by another message that gives the line and column of the reference to the illegal union. Recode, using a struct or individual scalar host variables.
PCS-00340 structure contains a bit field
Cause: Bit fields are not allowed in host variables because they are meaningless for database DML operations.
Action: This error message is followed by another message that gives the line and column of the reference to the offending host variable. Recode the application.
PCS-00341 host variable has illegal type
Cause: A host variable has an type that is not permitted (that is, ENUM, VOID, and so on).
Action: Rewrite the host variable declaration, using a permissible host variable type.
PCS-00342 using WHERE CURRENT OF on cursor defined without FOR UPDATE clause
Cause: When MODE=Oracle, a cursor defined with a WHERE CURRENT OF clause must also have a FOR UPDATE clause.
Action: Rewrite the cursor definition.
PCS-00343 body of cursor must be a query expression
Cause: A cursor definition must be a SELECT statement.
Action: Rewrite the cursor definition.
PCS-00344 Host variable array size mismatch. Using minimum: number
Cause: Host variable arrays in a single statement should all be of equal size.
Action: Redefine the bind variable array lengths to all be the same size.
PCS-00345 SQLCHECK=SEMANTICS must be given when embedded PL/SQL blocks are used
Cause: Embedded PL/SQL blocks require that the command-line flag SQLCHECK=SEMANTICS is used.
Action: Use the SQLCHECK=SEMANTICS option. This also requires that the USERID connect option be given.
PCS-00346 PL/SQL found semantic errors
Cause: A database entity, such as a table or column name, was referenced, that does not exist. This is a compile time error, not a runtime error.
Action: Check that all referenced objects in PL/SQL statements actually exist and that the necessary access permission on them have been granted.
PCS-00347 PL/SQL found syntax errors
Cause: A PL/SQL statement was used illegally.
Action: Check the PL/SQL User's Guide and Reference for the correct syntax.
PCS-00348 indicators are not allowed in EXEC IAF statements
Cause: Indicator variables associated with host variables cannot be used in EXECIAF statements such as GET and PUT in a user exit.
Action: Eliminate the indicator variable. If feasible (for example with Forms V4), use EXEC TOOLS statements, which do allow indicator variables. See the Pro*C/C++ Precompiler Programmer's Guide for more information.
PCS-00349 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.
PCS-00350 cannot equivalence this SQL type
Cause: Datatype or variable equivalencing to the datatypes NUMBER or DECIMAL cannot be used. See the Pro*C/C++ Precompiler Programmer's Guide for more information.
Action: Use the appropriate datatype for the application.
PCS-00351 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 Pro*C/C++ Precompiler Programmer's Guide for a list of the datatypes that can be equivalenced and the correct syntax of the VAR or TYPE statement.
PCS-00352 out of bounds bind position from PL/SQL
Cause: PL/SQL requested a bind position that does not exist.
Action: Contact Oracle Customer Support.
PCS-00353 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).
PCS-00354 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.
PCS-00355 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.
PCS-00356 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).
PCS-00357 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.
PCS-00358 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 Pro*C/C++ Precompiler Programmer's Guide for the syntax of the ARRAYLEN statement.
Action: Correct the statement, specifying a host array as the argument.
PCS-00359 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 dimension.
PCS-00360 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.
PCS-00361 Use of ARRAYLEN with SQL bind arrays is ignored
Cause: ARRAYLEN is only valid with arrays that can be bound in PL/SQL blocks.
Action: Use an appropriate array type.
PCS-00362 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.
PCS-00363 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.
PCS-00364 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.
PCS-00365 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.
PCS-00366 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/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.
PCS-00367 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.
PCS-00368 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.
PCS-00369 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.
PCS-00370 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.
PCS-00371 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.
PCS-00372 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.
PCS-00373 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.
PCS-00374 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 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.
PCS-00375 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.
PCS-00376 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).
PCS-00377 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.
PCS-00378 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.
PCS-00379 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.
PCS-00380 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 clause or the CONNECT MODE clause.
PCS-00382 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.
PCS-00383 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.
PCS-00384 Missing array length specifier
Cause: An array declaration was given without an array length specifier.
Action: Provide the length for the array declaration.
PCS-00385 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.
PCS-00386 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.
PCS-00387 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.
PCS-00388 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.
PCS-00389 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.
PCS-00390 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.
PCS-00391 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.
PCS-00392 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.
PCS-00393 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.
PCS-00394 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.
PCS-00395 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.
PCS-00396 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.
PCS-00397 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.
PCS-00398 Indicator ignored in this statement for this type
Cause: An indicator variable was used in a host/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/DEREF statements for REF types.
Action: Remove the use of the indicator for the type in the specified statement. It will be ignored otherwise.
PCS-00399 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.
PCS-00400 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.
PCS-00401 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.
PCS-00402 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.
PCS-00403 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 Pro*C/C++ Precompiler Programmer's Guide for a discussion of appropriate indicator variable declarations.
PCS-00404 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.
PCS-00405 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 type file was specified in the INTYPE option on the Pro*C command line.
PCS-00406 Expecting the form 'RETURN[ING] REF INTO :ref' only
Cause: When using the RETURNING clause in an OBJECT CREATE statement, only a single 'REF INTO :host_variable' 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.
PCS-00407 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.
PCS-00408 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.
PCS-00409 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.
PCS-00410 Expecting an expression of some Collection type.
Cause: The expression is not a Collection type. A VARRAY or Nested Table object was expected, but the given host variable did not resolve to a valid Collection type.
Action: Check that the OTT-generated header for the Collection type was properly #included in the Pro*C/C++ program and that the type file was specified in the INTYPE option on the Pro*C/C++ command line.
PCS-00411 Invalid type for INDICATOR descriptor item host variable
Cause: The type of the host variable paired with the INDICATOR descriptor item was invalid. The only permissible types for the INDICATOR item are a signed 2 byte numeric type or an indicator struct generated by the Object Type Translator for a user defined object type.
Action: Either replace the INDICATOR host variable with a valid one having an acceptable type or redeclare the existing host variable to be of a valid type.
PCS-00412 FOR clause not permitted in OBJECT GET or SET statement
Cause: An explicit FOR clause was used in an OBJECT GET or OBJECT SET statement. Use of the FOR clause is illegal for these statements.
Action: Remove the FOR clause.
PCS-00413 Number of attributes does not match number of host variables
Cause: The number of attributes supplied in the attribute list of an OBJECT SET of GET statement does not match the total number of host variables also supplied in that statement.
Action: Either remove some attributes or remove some host variables from the statement in order to make the total count for each the same.
PCS-00414 This attribute does not exist in the specified Object
Cause: An attribute given in the attribute list of an OBJECT SET or GET statement is not a member of the specified object in that statement.
Action: Remove the attribute from the list.
PCS-00415 Cannot manipulate Object attributes in an OBJECT GET or SET
Cause: An attempt was made to either GET or SET an attribute of an Object that itself was an Object or REF type.
Action: Remove the attribute from the attribute list in the statement.
PCS-00416 The Object in an OBJECT GET or SET must not be an array
Cause: The Object specified in an OBJECT GET or SET statement is an array which is illegal.
Action: Redeclare the Object so that it is not an array or subscript the Object so that only a single element of the Object array is specified.
PCS-00417 Illegal type conversion between attribute and host variable
Cause: An illegal type conversion was attempted in a Navigational GET or SET statement between the type of the Attribute and the type of the Host Variable.
Action: Change the type of either the Attribute or the Host Variable.
PCS-00418 Array size mismatch between Object and REF host variables
Cause: The array sizes of the Object and REF variables in an OBJECT CREATE or DEREF do not match.
Action: Adjust the array dimensions of the two host variables so that they are equal to one another.
PCS-00419 Host variable arrays not allowed in an OBJECT SET or GET
Cause: An array was found in the host variable list of an OBJECT SET or GET statement.
Action: Only scalars are allowed (except for single dimensioned char or varchar variables) in the host variable list of an OBJECT SET or GET. Make sure to use only scalars in these statements.
PCS-00420 Incomplete (or missing) type specification
Cause: An incomplete or perhaps missing type specification was given when declaring a host variable used in some SQL statement.
Action: Provide a complete type definition when declaring host variables intended for use inside any SQL statements.
PCS-00421 This host variable requires the use of an indicator variable
Cause: No indicator variable was provided (or matched) with a specific host variable where one was explicitly required.
Action: Provide an indicator variable for use with the specified host variable in the given SQL statement.
PCS-00422 Invalid value specified for the given context option
Cause: An illegal value was given for the specified runtime context option in the CONTEXT option OPTION SET (or GET) statement.
Action: Use a valid option value in the statement for the specified option being manipulated by the statement.
PCS-00423 Host variable has an invalid type for this option value
Cause: The type of the host variable corresponding to a specific option value in a CONTEXT option OPTION SET (or GET) statement is invalid for that particular value.
Action: Use a type suitable for the specific value being manipulated.
PCS-00424 The number of values and host variables does not match
Cause: There is a mismatch between the number of values specified and the number of valid host variables given in a CONTEXT option OPTION SET (or GET) statement.
Action: Use the same number of host variables as there are values given in that particular statement.
PCS-00425 An indicator variable is not required with this attribute
Cause: In a LOB or Collection DESCRIBE, an Indicator Variable was used with a Host Variable when retrieving a LOB attribute that doesn't require one.
Action: Remove the Indicator Variable.
PCS-00426 Incompatible LOB types
Cause: A LOB operation was attempted between LOBs whose types were not compatible. For example, When ASSIGNing one LOB to another, both LOBs must be of the same type. If they are not, this error results.
Action: Correct the LOB operation by having it function between LOBs of the same type. This may require a redeclaration of one of the LOBs used in the LOB statement performing the specified operation.
PCS-00427 Expression is not of the correct character string type
Cause: The given host variable expression was not declared to be of the required character type. In this case, one of several possible character types would have been accepted. However, the host variable type did not match any of them.
Action: Redeclare the problematic host variable, using one of the permitted character types.
PCS-00428 Buffer type is incompatible with LOB type
Cause: This error can occur in either of the following situations 1. An attempt to READ from a LOB into a buffer whose type was not compatible with the LOB type. 2. An attempt to WRITE a buffer into a LOB whose type was not compatible with the buffer type.
Action: Either the LOB type or the buffer type needs to be changed so that the LOB and buffer types become compatible for the specified operation.
PCS-00429 Expecting an expression of some internal LOB type
Cause: The given host variable was not declared to be an Internal LOB. BLOB, CLOB or NCLOB would have been accepted, however, the type of the host variable did not match any of these.
Action: Redeclare the host variable using one of the Internal LOB types.
PCS-00430 Expecting an expression of some arbitrary LOB type
Cause: The given host variable was not declared to be any type of LOB, Internal or External. In addition to any Internal LOB type, BFILE would also have been accepted, however, the type of the host variable did not match any of these.
Action: Redeclare the host variable using any of the LOB types, Internal or External.
PCS-00431 Expecting an expression of type external LOB (BFILE)
Cause: The given host variable was not declared to be an External LOB. Only BFILE would have been accepted in this case.
Action: Redeclare the host variable using an External LOB type (BFILE).
PCS-00432 Cannot open an external LOB (BFILE) in READ WRITE mode
Cause: An attempt was made to OPEN a BFILE in READ WRITE mode. Writable BFILEs are currently not supported so this operation is considered erroneous.
Action: Do not open BFILEs using READ WRITE mode. BFILEs can only be OPENed in READ ONLY mode.
PCS-00433 Invalid host variable and attribute pairing
Cause: The host variable and attribute pairing in a LOB or Collection DESCRIBE is invalid. Most likely, this was due to some problem with the host variable. For example, this error could occur if the host variable was not declared or is otherwise not provided.
Action: Usually, other, more specific, errors will accompany this one. Correcting some or all of those problems should resolve this error.
PCS-00434 FOR clause not permitted in any LOB statement
Cause: An explicit FOR clause was used in some LOB statement. The use of the FOR clause in LOB statements is erroneous.
Action: Remove the FOR clause.
PCS-00435 This attribute is only valid for internal LOB types
Cause: A request for a LOB attribute was made in a LOB DESCRIBE statement in which the given LOB was not of some Internal LOB type.
Action: Replace the LOB host variable in the LOB DESCRIBE with one that was declared to be an Internal LOB.
PCS-00436 This attribute is only valid for external LOB types (BFILEs)
Cause: A request for a LOB attribute was made in a LOB DESCRIBE statement in which the given LOB was not an External LOB type (BFILE).
Action: Use an External LOB (BFILE) host variable in the LOB DESCRIBE statement.
PCS-00437 Expecting an expression having binary integral type
Cause: A host variable was given that was not declared to be of some acceptable binary numeric integral type. Generally, when this error occurs, a signed or unsigned integral type was expected. Floating point or otherwise imprecise numeric types are considered erroneous.
Action: Replace the problematic host variable with one that was declared using a proper exact numeric integral type.
PCS-00438 Arrays of collection objects are not allowed
Cause: An array of collections was given in a COLLECTION statement. Only scalar (non-array) collection objects are allowed in any of the COLLECTION statements.
Action: Change the declaration of the Collection host variable so that it is not an array.
PCS-00439 FOR clause not allowed in this COLLECTION statement
Cause: An illegal FOR clause was used in a COLLECTION statement that did not allow one, particularly, one of either the TRIM or DESCRIBE COLLECTION statements.
Action: Remove the FOR clause from the statement.
PCS-00440 This attribute is valid for either internal or external LOBs
Cause: A request for a LOB attribute was made in a LOB DESCRIBE statement in which the given LOB host variable was neither an Internal an External LOB (BFILE) type.
Action: Use either an Internal or External LOB host variable in the LOB DESCRIBE statement.
PCS-00441 Number of attributes does not match number of host variables
Cause: There is a mismatch between the number of attributes and the number of valid host variables in the LOB or Collection DESCRIBE.
Action: Make sure that for each attribute being requested there is at most a single valid host variable given to hold its value.
PCS-00442 Expecting a value between 1 and 65535 inclusive
Cause: The value specified in the WITH MAX clause of an ALLOCATE DESCRIPTOR statement or the VALUE clause of a GET/SET DESCRIPTOR statement was either less than 1 or greater than 65535.
Action: Specify a value between 1 and 65535.
PCS-00443 This usage is only valid when DYNAMIC=ANSI is specified
Cause: One of the following statements was used without specifying a DYNAMIC=ANSI command line option setting:
Action: Specify DYNAMIC=ANSI or remove statements like those above from the program.
PCS-00444 Invalid combination of descriptor and non-descriptor clauses
Cause: There was a mixing of descriptor and non-descriptor clauses in an ANSI Dynamic SQL statement.
Action: Do not mix descriptors and non-descriptors in the ANSI statement in question.
PCS-00445 USING clause valid only on a PREPAREd dynamic statement
Cause: The USING clause was used with an OPEN cursor statement where the cursor declaration was not for a PREPAREd statement. The correct sequence of statements should be as follows:
Action: Use the PREPARE statement for the SQL statement and use that in the DECLARE CURSOR statement.
PCS-00446 FOR clause not allowed in a DEALLOCATE statement
Cause: An explicit FOR clause was used in a DEALLOCATE DESCRIPTOR statement.
Action: Remove the FOR clause from the statement.
PCS-00447 Cannot specify destination offset in a LOB WRITE APPEND
Cause: A destination offset was specified in a LOB WRITE APPEND statement. The destination offset is assumed to be the end of the LOB so specifying an explicit destination offset is erroneous.
Action: Remove the destination offset from the LOB WRITE APPEND statement.
PCS-00448 Cannot specify a UCS2 variable in the NLS_NCHAR option
Cause: A variable declared as UTEXT, UVARCHAR, or LONGUVARCHAR was specified in the NLS_NCHAR command line option.
Action: Re-precompile without specifying the variable in an NLS_NCHAR command line option.
PCS-00449 Cannot type equivalence a UCS2 type
Cause: A UCS2 type has been type equivalenced in an EXEC SQL TYPE statement or a variable of UCS2 type has been type equivalenced in an EXEC SQL VAR statement.
Action: Remove the EXEC SQL TYPE or EXEC SQL VAR statement.