Oracle9i SQLJ Developer's Guide and Reference
Release 1 (9.0.1)

Part Number A90212-01
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

B
SQLJ Error Messages

This appendix lists error messages that might be output by the SQLJ translator and SQLJ runtime. Cause and action information is also provided, as well as the SQL state for runtime errors.

Translation Time Messages

This section provides a list of error messages you may encounter from the SQLJ translator, including cause and action information.


Note:

By enabling the SQLJ translator -explain flag, you can instruct the translator to provide "cause" and "action" information in real-time with its error message output. This is the same information that is provided in the error list below. See "Cause and Action for Translator Errors (-explain)"


<<<NEW SQL>>>

Cause: The Oracle customizer translated a SQL operation into an Oracle-specific dialect, as shown in the remainder of the message. Messages of this nature are enabled with the Oracle customizer "showSQL" option.

Action: This is an informational message only. No further action is required.

[Connecting to user user at connection]

Cause: Informs user that SQLJ connects as user user to the database with URL connection.

[Preserving SQL checking info]

Cause: SQLJ will preserve analysis information obtained from online checking during this run.

[Querying database with "sqlquery"]

Cause: Informs user that database query was issued.

[Re-using cached SQL checking information]

Cause: Informs user that SQLJ is reusing cached analysis results from previous online checking runs.

[Registered JDBC drivers: class]

Cause: Lists the JDBC drivers that have been registered.

[SQL checking: read m of n cached objects.]

Cause: Analysis information cached from online checking has been retrieved.

[SQL function call "sqlj call" transformed into ODBC syntax "jdbc call"]

Cause: Informs user that SQLJ has converted SQLJ function call syntax to JDBC function call syntax.

A call to a stored function must return a value.

Cause: User ignores result returned by a stored function call.

A call to a stored procedure cannot return a value.

Cause: User tries to retrieve a return value from a stored procedure invocation.

A non-array type cannot be indexed.

Cause: Only array types can be used as the base operand of array access operator ('[]').

Action: Check the type of the base operand.

A SQL quote was not terminated.

Action: Insert the terminating " or '.

Access modifiers modifier1 and modifier2 are not compatible.

Cause: Named access modifiers cannot be applied to the same class, method, or member. For example, private and public are incompatible as access modifiers.

Action: Change or remove one of the conflicting access modifiers.

Ambiguous column names columns in SELECT list.

Cause: You may not use column names that are only distinguished by case.

Action: Use column aliases to distinguish column names.

Ambiguous constructor invocation.

Cause: More than one constructor declaration matches the arguments after standard conversions.

Action: Indicate with explicit cast which constructor argument types should be used.

Ambiguous method invocation.

Cause: More than one overloaded method declaration matches the arguments after standard conversions.

Action: Indicate with explicit cast which method argument types should be used.

An error occurred when determining result set column sizes: message

Cause: User specified the -P-Coptcols option. An error occurred when the profile customizer was trying to determine the types and sizes the columns in a result set columns.

Action: Check your SQL statement. You may want to perform connected translation to better determine the cause of the error.

an io error occured while generating output: message

Action: Ensure that you have appropriate permissions and sufficient space for SQLJ output.

Anonymous classes are not allowed in bind expressions.

Cause: Host expressions cannot contain anonymous classes.

Action: Move the expression that has anonymous class outside the #sql statement and store its value to a temporary variable of the correct type; then use that temporary variable in the host expression instead.

Argument #n of name must be a host variable, since this argument has mode OUT or INOUT.

Cause: Modes OUT and INOUT require the presence of variables or assignable expressions (such as array locations) in this argument position.

Argument #n of name requires mode IN.

Cause: The stored procedure or function name requires that the mode of the host expression #n be IN.

Action: Declare the host expression in the SQLJ statement as IN.

Argument #n of name requires mode INOUT.

Cause: The stored procedure or function name requires that the mode of the host expression #n be INOUT.

Action: Declare the host expression in the SQLJ statement as INOUT.

Argument #n of name requires mode OUT.

Cause: The stored procedure or function name requires that the mode of the host expression #n be OUT.

Action: Declare the host expression in the SQLJ statement as OUT.

Argument #pos is empty.

Cause: In the argument list of a stored function or procedure, you left the argument at position pos empty. For example: proc(1, ,:x).

Action: Replace the empty argument with a host expression or a SQL expression.

Arithmetic expression requires numeric operands.

Cause: Both the left-hand side and the right-hand side of an arithmetic operation must have numeric types.

Action: Correct the types of the operands.

Array index must be a numeric type.

Cause: Array objects can only be indexed using a numeric index.

Action: Correct the type of the index operand.

Attributes attribute1 and attribute2 are not compatible.

Cause: The named attributes cannot be applied to the same class or method. For example, abstract and final are incompatible as attributes.

Action: Change or remove one of the conflicting attributes.

auditing layer added

Cause: An auditing customization was installed into the profile being customized.

Action: The profile will include audit calls when used. No further action required. Use the "uninstall" option to remove the auditor.

auditing layer removed

Cause: The last auditing customization previously installed into the profile was removed. If multiple auditors were installed, only the last to be installed is removed.

Action: Further "uninstall" calls may be required if you want to remove additional auditors.

backup created as filename

Cause: A backup file for the profile was created with the name filename. The backup file contains the original profile before customization.

Action: No further action required. The original profile can be restored by copying the backup file over the new profile.

bad filename: filename

Cause: The file filename could not be used as input to the customizer harness utility. Only filenames with ".ser" or ".jar" extensions are supported.

Action: Rename the file to have an accepted extension.

Bad octal literal 'token'.

Cause: A numeric literal beginning with digit '0' is interpreted as an octal, and hence must not contain digits '8' or '9'.

Action: Modify the bad literal. If octal was intended, recalculate its value in base-8. If decimal was intended, remove all leading zeroes.

Badly placed #sql construct -- not a class declaration.

Cause: An executable SQLJ statement appears where a declaration was expected.

Action: Move the #sql construct to a legal position.

Bitwise operator requires boolean or numeric operands.

Cause: Bitwise operator can only operate on objects both of which are either boolean or numeric. A bitwise operation between two objects from different categories will fail.

Action: Check the types of operands.

Boolean operator requires boolean operands.

Cause: Boolean operators can only operate with boolean arguments.

Action: Check the types of operands.

cannot access option option name

Cause: The option named option name was not accessible to the customizer harness. This often indicates a non-standard customizer-specific option.

Action: Verify the intended use of the option. As a workaround, discontinue use of the option or use a different customizer.

Cannot analyze SQL statement online: unable to determine SQL types for count host items.

Cause: SQLJ determines a corresponding SQL type for each of the Java host expressions. These SQL types are required for checking the statement online.

Action: Use Java types that are supported by Oracle SQLJ.

Cannot determine default arguments for stored procedures and functions. May need to install SYS.SQLJUTL.

Cause: SQLJ cannot find the functions declared in the package SYS.SQLJUTL.

Action: Find the SQL file [Oracle Home]/sqlj/lib/sqljutl.sql and run it. Alternatively, if your stored functions or procedures do not use default arguments, you can ignore this message.

Cannot load JDBC driver class class.

Action: Check the name of the JDBC driver class.

Cannot load type map from resource map name.

Action: Ensure that the type map resource map name is present on the CLASSPATH.

cannot remove java file without first compiling it

Cause: The "nc" and "rj" options were specified at the same time to the profile conversion utility. The utility is unable to remove the Java file if it has not been compiled into a class file.

Action: Use only one of the "nc" and "rj" options.

Cannot resolve identifier because the enclosing class has errors.

Cause: Class that contains errors cannot be used in name resolution because access rights can be assigned to complete classes only.

Action: Fix the enclosing class, paying attention to correct spelling of base types, field types, method argument types and method return types. Also make sure that any external classes that are referenced by their base name only have been imported.

Cannot retrieve type map for context class context class: error message

Cause: An error occurred when trying to retrieve a type map for the connection context class context class.

cannot specify both option name and option name options

Cause: Two incompatible options were specified at the same time to the profile conversion utility.

Action: Use only one of the specified options.

Class class does not implement the checker interface.

Cause: Checkers must implement sqlj.framework.checker.SQLChecker.

Class classname not found.

Cause: The program contained a reference to a class named classname. The class definition was not found in any source file currently being translated or in the classpath.

Action: Check the name of the class. Verify that it is defined either in class format in the classpath or in a source file passed to the translator.

class cannot be constructed as an iterator: class name

Cause: The iterator class class name used in this SQL operation did not have the expected constructor. This indicates an iterator generated by a non-standard translator.

Action: Retranslate the iterator declaration using a standard translator.

class has already been defined: classname

Cause: Ensure that the class classname is only defined in one of the source files that you pass to SQLJ.

class has errors - unable to resolve method method().

Cause: SQLJ translation is not able to determine if the Java class properly implements the oracle.sql.CustomDatum or java.sql.SQLData interface. This is due to an error in the Java class.

Action: Fix the problem in the Java class. You may want to compile it separately to obtain errors on the class.

class implements both sqlj.runtime.NamedIterator and sqlj.runtime.PositionedIterator: class name

Cause: It could not be determined if the iterator class class name used in this SQL operation was a named iterator or positional iterator. This indicates an iterator that was generated by a non-standard translator or included an erroneous interface in its implements clause.

Action: Verify that the implements clause of the iterator declaration does not contain one of the problematic interfaces. Retranslate the iterator declaration using a standard translator.

Class not found: mesg. The problem is likely due to the fact that either your program or the SQLJ runtime references javax.sql.DataSource.

Cause: You are probably using the WITH attribute "dataSource" on a connection context and/or a SQLJ runtime version, such as runtime12ee.zip, that is statically linked with javax.sql.DataSource.

Action: Ensure that the javax.sql.* and javax.naming.* packages are in your CLASSPATH. Or remove the "dataSource" attribute from the connection context declaration and do not use runtime12ee.zip.

Column javatype column not found in SELECT list.

Action: The column column could not be found in the result set returned by the query. Either fix the iterator declaration, or the SELECT statement, possibly by using an alias.

Column name1 #pos1 will cause column name2 #pos2 to be lost. Use a single stream column at the end of the select list.

Cause: You can have at most one stream column in a positional iterator, and this column must be the last one in the iterator.

Action: Move the stream column to the last position in the iterator. If you have more than one stream column, you can use a named iterator, ensuring that the stream columns (and other columns) are accessed in order.

Column type column is not compatible with database type sqltype

Cause: The Java and SQL types are not compatible.

Comparison operator requires numeric operands.

Cause: Only numeric values are meaningful in an operation that compares magnitudes.

Action: Check the types of operands.

compatible with the following drivers:

Cause: The Oracle customizer "compat" option was enabled. A list of Oracle JDBC driver versions that may be used with the current profile follows this message.

Action: Use one of the listed JDBC driver versions to run the program.

compiling filename

Cause: The profile in file filename was compiled into class file format by the profile conversion utility.

Action: No further action required.

Complement operator requires integral operand.

Cause: Only an integral value can be complemented bitwise.

Action: Check the types of operands.

Conditional expression requires boolean for its first operand.

Cause: Conditional expression uses its first operand to choose which one of the other two shall be executed; hence the first operand must have a boolean type.

Action: Check the type of the first operand.

Conditional expression result types must match.

Cause: The value of conditional expression is either its second or its third operand, both of which must be either boolean or numeric types, or object types at least one of which is assignable to the other.

Action: Check the types of operands.

Connection context expression does not have a Java type.

Cause: No valid Java type could be derived for your connection context expression.

Connection context must have been declared with #sql context ... It can not be declared as a ConnectionContext.

Action: Declare your connection context type with #sql context ConnectionContext;

ConnectionContext attribute attribute is not defined in the SQLJ specification.

Action: The with-clause attribute attribute is not explicitly part of the SQLJ specification. Check the spelling of your attribute name.

ConnectionContext cannot implement the interface interface.

Cause: In your SQLJ context declaration you specified an implements clause with the interface interface. However, connection contexts do not implement this interface.

Constructor not found.

Cause: The constructor that was invoked does not exist.

Action: Check the constructor arguments, or add a constructor with the desired arguments.

Context context ignored in FETCH statement.

Cause: Since a context is associated with a cursor object at the initialization of a cursor with a query, context information in FETCH statements is superfluous, and will be ignored by SQLJ.

converting profile filename

Cause: The profile in file filename was converted from serialized to Java source file format by the profile conversion utility.

Action: No further action required.

Cursor has item count items. Argument #pos of INTO-list is invalid.

Cause: Your INTO-list has more elements than the corresponding positional iterator from which you are fetching.

Action: Remove the extra INTO-list elements.

Cursor type in FETCH statement does not have a Java type.

Cause: No valid Java type could be derived for the iterator expression in the FETCH statement.

customized

Cause: The profile was successfully customized.

Action: No further action required.

customizer does not accept connection: connection url

Cause: The connection specified by connection url was established, but was either not needed or not recognized by the current customizer.

Action: Verify that the current customizer requires a connection. If not, omit the "user" option from the customizer harness. If so, verify that the database and schema connected to are compatible with the customizer.

Database error during signature lookup for stored procedure or function name: message

Cause: An error occurred when SQLJ tried to determine the existence and the signature of the function or procedure name.

Action: As a workaround you can translate your SQLJ program offline.

Database issued an error: error.

Cause: Database issued error when parsing a SQL statement against the exemplar schema.

Action: Check the validity of the SQL statement.

Database issued an error: error sqltext

Cause: Database issued an error when parsing the SQL statement against the exemplar schema.

Action: Check the validity of the SQL statement.

deleting filename

Cause: The intermediate file filename was removed by the profile conversion utility.

Action: No further action required.

Did not find a stored procedure or function name with n arguments.

Cause: No procedure or function name with n arguments appears in the database.

Action: Check the name of your stored procedure or function.

Did not find a stored procedure or function name with n arguments. found functions/procedures with different numbers of arguments

Cause: No procedure or function name with n arguments appears in the database. However, there is a procedure or function of this name with a different number of arguments.

Action: Check the name of your stored procedure/function, as well as for extraneous or missing arguments.

Did not find stored function name with n arguments.

Cause: SQLJ could not find a stored function of the desired name name.

Action: Check the name of your stored function.

Did not find stored function proc with n arguments. found functions/procedures with different numbers of arguments

Cause: No stored function proc with n arguments appears in the database. However, there is a procedure or function of this name with a different number of arguments.

Action: Check the name of your stored function, as well as for extraneous or missing arguments.

Did not find stored procedure name with n arguments.

Cause: SQLJ could not find a stored procedure of the desired name name.

Action: Check the name of your stored procedure.

Did not find stored procedure proc with n arguments. found functions/procedures with different numbers of arguments

Cause: No stored procedure proc with n arguments appears in the database. However, there is a procedure or function of this name with a different number of arguments.

Action: Check the name of your stored procedure, as well as for extraneous or missing arguments.

Do not know how to analyze this SQL statement.

Cause: An online connection is required to help SQLJ analyze this statement.

Do not understand this statement.

Cause: Unable to identify this statement, since it does not start with a SQL keyword (SELECT, UPDATE, DELETE, BEGIN, ...) or a SQLJ keyword (CALL, VALUES, FETCH, CAST, ...).

Duplicate access modifier.

Cause: The same access modifier appears more than once for the same class, method or member.

Action: Remove the superfluous access modifier.

Duplicate method method.

Cause: The method method was declared more than once.

Duplicate methods method1 and method2.

Cause: Methods method1 and method2 map to the same SQL name. You cannot have two methods that map to the same SQL name in a named iterator declaration.

Equality operator operand types must match.

Cause: Equality operator can only compare objects both of which are either boolean or numeric types, or object types at least one of which is assignable to the other.

Action: Check the types of the operands to the equality operator.

error converting profile: filename

Cause: An error occurred while converting the profile in file filename from serialized to class file format. Details of the error were listed after this message.

Action: Consult the error details and fix as appropriate.

Error in Java compilation: message

Cause: An error occurred when SQLJ was invoking the Java compiler to compile .java source files.

Action: Ensure that the correct Java compiler is specified in the -compiler-executable flag, and that the compiler can be found on the PATH. Alternatively, you can use the -passes option, so that your Java compiler is called from the commandline rather than from SQLJ.

error loading customizer harness

Cause: The customizer harness utility could not be properly initialized. This indicates an incompatible Java runtime environment.

Action: Verify that the Java runtime environment is compatible with JRE 1.1 or later.

Expected "token1" and found "token2" instead.

Cause: The syntax of this statement requires a terminating token token1 which was not found.

Expected 'FROM' to follow 'SELECT ... INTO ...'

Cause: The SELECT statement syntax is incorrect.

Action: Add FROM clause after the INTO clause.

Expected cast to be assigned to an iterator, found that cast was assigned to type.

Cause: The the left-hand-side of the CAST assignment must be a SQLJ iterator instance, not an expression of type type.

Expected cast to be assigned to an iterator.

Cause: The SQLJ CAST statement must be an assignment statement, with the left-hand-side of the assignment being a SQLJ iterator instance.

Expected cursor host variable or NEXT, or PRIOR, or FIRST, or LAST, or ABSOLUTE, or RELATIVE.

Cause: A host variable representing an iterator type or a keyword was expected here.

Expected cursor host variable. Encountered: "token"

Cause: A host variable representing an iterator type was expected here.

Expected end of cast statement. Found "token" ...

Cause: An unexpected token token was found after the CAST statement.

Expected end of FETCH statement. Encountered: "token"

Cause: No further tokens were expected in this FETCH statement.

Expected host variable of type java.sql.ResultSet, found "token" ...

Cause: You did not specify a host variable after the CAST keyword.

Expected host variable of type java.sql.ResultSet, found host variable of invalid Java type.

Cause: No valid Java type could be derived for the host expression.

Expected host variable of type java.sql.ResultSet, found host variable of type type.

Cause: The host expression has the Java type type, not java.sql.ResultSet as required.

Action: Use a host expression of type java.sql.ResultSet. If necessary, you can cast the expression to this type using a Java cast.

Expected host variable of type java.sql.ResultSet.

Cause: The SQLJ CAST statement assigns a java.sql.ResultSet to an iterator type. The type you are trying to convert is not a java.sql.ResultSet.

Action: You must use a host expression of type java.sql.ResultSet. If necessary, you can cast the expression to this type using a Java cast.

Expected INTO bind expression.

Cause: This statement should have a list of one or more INTO host expressions.

expected ODBC function call syntax "{ call func(...) }".

Cause: Invalid use of the JDBC escape syntax for calling stored procedures.

Expected stored function name. Found: token

Cause: The name of a stored function was expected here instead of the token token.

Expected stored function or procedure name. Found: token

Cause: The name of a stored function or a stored procedure was expected here instead of the token token.

Expected stored procedure name. Found: token

Cause: The name of a stored procedure was expected here instead of the token token.

Expected: FETCH :cursor INTO ...

Cause: The FETCH statement must have a cursor host variable, from which values are to be fetched.

Expected: WHERE CURRENT OF :hostvar. Found: WHERE CURRENT token ...

Action: Use proper syntax in the WHERE CURRENT OF clause.

Expected: WHERE CURRENT OF :hostvar. Found: WHERE CURRENT OF token ...

Action: Use proper syntax in the WHERE CURRENT OF clause.

field "field name" in class name is not a class name type

Cause: The field named field name in custom datum class class name did not have the expected type class name. A field of this type is required for proper conversion of the class to and from Oracle database types.

Action: Declare field field name to be the indicated type in the custom datum class.

field "field name" in class name is not accessible

Cause: The field named field name was not public in custom datum class class name. It is required for proper conversion of the class to and from Oracle database types.

Action: Declare field field name as public in the custom datum class.

field "field name" in class name is not uniquely defined

Cause: More than one field named field name was found in custom datum class class name. This can occur if field name is defined in two different interfaces that are both implemented by class name. A uniquely defined field is required for proper conversion of the class to and from Oracle database types.

Action: Update the custom datum class so that field name is defined only once.

field "field name" not found in class name

Cause: A field named field name could not be found in custom datum class class name. It is required for proper conversion of the class to and from Oracle database types.

Action: Declare the required field in the custom datum class.

Field not accessible.

Cause: This class has no access to the field.

Action: Check that the access rights of the field are set correctly.

File fileName does not contain type className as expected. Please adjust the class path so that the file does not appear in the unnamed package.

Cause: Ensure that the class className is defined in file fileName that you pass to SQLJ.

file too large

Cause: A profile file contained in a JAR file was too large to be customized.

Action: Extract and customize the profile as a single file rather than as part of a JAR file.

filename must be a valid java identifier: filename

Cause: The filename is an illegal Java identifier. SQLJ creates additional class and resource definitions based on the name of the input file, so the name must be able to be used as a Java identifier.

Action: Rename the file so that it can be used as a Java identifier.

found incompatible types

Cause: The profile contained a combination of types that could not be supported by any one Oracle JDBC driver.

Action: Remove incompatible types from the program. Incompatible types are included in the types listed by the "summary" option.

Host item #n cannot be OUT or INOUT.

Cause: The host item at position #n is embedded in a SQL expression that constitutes an argument to a stored procedure or function. This argument position therefore must have the mode IN. This message is also given if you bind arguments by name.

Action: Change the mode of the argument to IN. If you are binding an OUT or INOUT argument by name, you should ignore this message.

Host item #pos must be an lvalue.

Cause: The OUT or INOUT host expression at position pos must be an assignable expression. Java variables, fields, and array elements are assignable expressions.

Host item name (at position #n) cannot be OUT or INOUT.

Cause: The host item name at position #n is embedded in a SQL expression that constitutes an argument to a stored procedure or function. This argument position therefore must have the mode IN. This message is also given if you bind arguments by name.

Action: Change the mode of the argument to IN. If you are binding an OUT or INOUT argument by name, you should ignore this message.

Identifier identifier may not begin with __sJT_.

Action: Ensure that you do not use identifiers that start with __sJT_.

Ignored type map entries: entry list.

Cause: One or more non-standard, non-portable entries on the connection context type map were found and ignored.

ignoring context name context name

Cause: A profile was found with an associated connection context named context name. Since this context was not included in the customizer harness "context" option list, this profile was not customized.

Action: Rerun the customizer harness with a "context" setting that includes the named context, if desired.

Illegal entry for option option. Expected a boolean value, received: "value"

Action: Use a boolean value for option (such as true, false, yes, no, 0, 1).

Illegal INTO ... bind variable list: error.

Cause: One or more components of the INTO list do not have a valid Java type.

Illegal Java type in cursor for WHERE CURRENT OF

Cause: No valid Java type could be derived for the iterator in the WHERE CURRENT OF clause.

Illegal token 'token' will be ignored.

Cause: Source file contains a sequence of characters that cannot be matched to any Java token.

Action: Modify the source file to fix the error and verify the source file contains valid Java source code.

illegal value: option setting

Cause: An option was set to a value that was out of range or invalid.

Action: Consult the message detail and correct the option value accordingly.

In FETCH clause: expected expected token or expression.

Cause: A particular syntactic keyword or expression was expected in the FETCH clause.

IN mode is not allowed for INTO-variables.

Cause: INTO variables return values in Java.

Action: Use OUT instead (which is the default, so if you want you can omit the specifier altogether).

Inaccessible Java type for host item #n: type.

Cause: The Java class type is not a publicly visible class, and thus cannot be instantiated by a driver.

Action: Use a public Java type in the host expression.

Inaccessible Java type for host item name (at position #n): type.

Cause: The host expression name has Java type type, which is not publicly visible, and thus cannot be instantiated by a driver.

Action: Use a public Java type in the host expression.

Inaccessible Java type for item #pos of INTO-list: type.

Cause: The Java class type of INTO-list item pos is not a publicly visible class, and thus cannot be instantiated by a driver.

Action: Use a public Java type in the INTO-list.

Increment/decrement operator requires numeric operand.

Cause: Increment and decrement operators can only operate on integer values.

Action: Check the type of the operand.

Initialization lists are not allowed in bind expressions.

Cause: Host expressions cannot have initialization lists.

Action: Move the expression that uses initialization list outside the #sql statement and store its value to a temporary variable of the correct type; then use that temporary variable in the host expression instead.

INOUT mode is not allowed for INTO-variables.

Cause: INTO variables return values in Java.

Action: Use OUT instead (which is the default, so if you want you can omit the specifier altogether).

Instanceof operator requires an object reference operand.

Cause: Instanceof operator can only operate on objects.

Action: Check the type of the operand.

INTERNAL ERROR SEM-label. Should not occur - please notify.

Action: Notify Oracle of the error message.

INTO-list item #position must be an lvalue.

Cause: The elements of an INTO-list must be assignable expression. Java variables, fields, and array elements are assignable expressions.

INTO-lists may only occur in SELECT and FETCH statements.

Cause: No INTO... bind list is permitted in the current SQL statement.

Invalid CustomDatum or SQLData implementation in type: mesg

Cause: You are employing a user-defined Java type type that implements the oracle.sql.CustomDatum or the java.sql.SQLData interface. However, your type does not meet all of the requirements placed on user-defined type, as indicated by the message detail.

Action: Remedy the problem in your user-defined type. Alternatively, you may want to use the jpub utility to generate your user-defined type.

Invalid bind variable or expression.

Cause: A bind variable (i.e., host variable, context expression, or iterator expression when used to store the return value of a query) is not legal Java syntax.

Action: Fix the host variable or expression.

Invalid cursor type in FETCH statement: type.

Action: Iterator in the FETCH statement must implement sqlj.runtime.FetchableIterator.

Invalid iterator declaration.

Cause: There is a syntax error in the SQL declaration.

Action: Check the SQL declaration syntax.

Invalid Java type classname in entry "typemap entry".

Cause: The Java classname must be the name of a valid Java class that is present in the Java environment.

Invalid Java type java type in map at entry "entry"

Cause: The type java type is not the name of a valid Java class.

Invalid Java type for host item #n.

Cause: No valid Java type could be derived for host expression #n.

Invalid Java type for host item #n: error.

Cause: No valid Java type could be derived for host expression #n.

Invalid Java type for host item #position: classname. Oracle SQL does not support this type.

Cause: The Oracle SQLJ runtime does not support writing instances of this type to the database.

Action: If the problem type is oracle.sql.STRUCT, oracle.sql.REF, or oracle.sql.ARRAY, you can use a JPublisher-generated wrapper class instead of the oracle.XXX type.

Invalid Java type for host item name (at position #n).

Cause: No valid Java type could be derived for host expression name (at position #n).

Invalid Java type for host item name (at position #n): error.

Cause: No valid Java type could be derived for host expression name (at position #n).

Invalid Java type for item #pos of INTO-list: type.

Cause: No valid Java type could be derived for INTO-item #pos: type.

invalid option "option name" set from option origin: problem description

Cause: The option option name had an invalid value.

Action: Correct the option value as needed for problem description.

invalid option: option setting

Cause: The option given by option setting was not recognized by the customizer harness.

Action: Correct or remove the unknown option.

invalid profile name: profile name

Cause: The JAR file MANIFEST file contained a SQLJ profile entry that was not contained in the JAR file.

Action: Add the named profile to the JAR file, or remove its entry from the MANIFEST file.

Invalid SQL iterator declaration.

Cause: An instance of a declared SQLJ type cannot be fully manipulated, because its declaration contains errors or ambiguities.

Action: Check the SQL iterator declaration, paying attention to the types that appear in the iterator column type list, and that those types are imported if they are referred to using their base name only.

Invalid SQL string.

Cause: There is a syntax error in the SQL statement.

Action: Check the SQL statement syntax, paying attention especially to missing delimiters (for example, closing parenthesis, braces, and brackets; quotation marks; comment delimiters, etc.).

Invalid SQL type in entry "entry" of type map type map message.

Cause: The SQL type in entry entry was not given properly, or it has duplicate entries.

Invalid type cast

Cause: An object cannot be cast to the indicated type.

Action: Check the type of the operand.

Item #pos of INTO-list does not have a Java type.

Cause: No valid Java type could be derived for INTO-item #pos.

Iterator iterator must implement the interface interface.

Cause: Because of the motion command used on this iterator, it must implement the interface interface.

Action: Declare the iterator type as follows: #sql iterator iterator implements interface (...);

iterator class name must implement either sqlj.runtime.NamedIterator or sqlj.runtime.PositionedIterator

Cause: The iterator class class name used in this SQL operation was neither a named iterator nor a positional iterator. This indicates an iterator that was generated by a non-standard translator.

Action: Retranslate the iterator declaration using a standard translator.

Iterator attribute attribute is not defined in the SQLJ specification.

Action: The with-clause attribute attribute is not explicitly part of the SQLJ specification. Check the spelling of your attribute name.

Iterator with attribute updateColumns must implement sqlj.runtime.ForUpdate

Action: Specify the implements-clause: implements sqlj.runtime.ForUpdate in your iterator declaration.

JAR does not contain MANIFEST file

Cause: A JAR file did not contain a MANIFEST file. The MANIFEST file is required to determine the profiles contained in the JAR file.

Action: Add a MANIFEST to the JAR file. The MANIFEST should include the line "SQLJProfile=TRUE" for each profile contained in the JAR file.

JAR MANIFEST file format unknown

Cause: A JAR file could not be customized because the JAR MANIFEST file was written using an unknown format.

Action: Recreate the JAR file with a MANIFEST file formatted according the JDK manifest file format specification. MANIFEST files created using the jar utility conform to this format.

Java class class specified in type map does not implement interface.

Cause: According to the context type map type map, the class class must implement the interface type map. This is not the case.

Java class class specified in type map implements neither interface1 nor interface2.

Cause: According to the context type map type map, the class class must implement interface interface1 or it must implement interface interface2. This is not the case.

Java class classname in entry "entry" must implement interface

Cause: Instances of Java objects that are read from or written to the database must implement a particular Java interface.

Java type javatype for column column is illegal.

Cause: No valid Java class declaration could be found for javatype.

Java type type of iterator for WHERE CURRENT OF is not supported. It must implement sqlj.runtime.ForUpdate.

Cause: The iterator in the WHERE CURRENT OF clause must be declared as implementing the interface sqlj.runtime.ForUpdate.

JDBC does not specify that column column type is compatible with database type sqltype. Conversion is non-portable and may result in a runtime error.

Action: For maximum portability to different JDBC drivers, you should avoid this conversion.

JDBC reports a mode other than IN/OUT/INOUT/RETURN for name in position n.

Cause: Your JDBC reports an unknown mode for an argument of a stored procedure or function.

Action: Ensure that the stored function or procedure has been properly defined. Possibly update your JDBC driver.

JDBC reports an error during the retrieval of argument information for the stored procedure/function name: error.

Action: Because of the error, the modes for this function or procedure could not be determined. Repeat translation or translate offline if error persists.

JDBC reports more than one return value for name.

Cause: Your JDBC driver erroneously reports multiple return arguments for a stored procedure or function.

Action: Update your JDBC driver.

JDBC reports the return value for function in position pos instead of position 1.

Cause: Your JDBC driver does not properly report the return argument of a stored function first.

Action: Update your JDBC driver.

Left hand side of assignment does not have a Java type.

Cause: No valid Java type could be derived for the left-hand-side expression of the assignment statement.

list item value may not be empty

Cause: A list-valued option such as "driver" or "context" included an empty list item.

Action: Remove the empty item from the list.

Loss of precision possible in conversion from sqltype to column column type.

Cause: Conversion from a numeric SQL value to Java may result in a loss of precision.

Method name method is reserved by SQLJ.

Cause: SQLJ pre-defines several methods on iterators. You cannot use these names in your own methods.

Method not accessible.

Cause: This class has no access to the method.

Action: Check that the access rights of the method are set correctly.

Method not found.

Cause: The method does not exist.

Action: Check the method arguments, or add an overloaded method with the desired arguments.

Missing count elements in INTO list: types

Cause: The FETCH statement has fewer columns on the fetch cursor than required by the INTO bind variable list.

Missing closing ")" on argument list of stored procedure/function call.

Action: The argument list should be terminated with a ")".

Missing colon.

Cause: There was no colon where one was expected.

Action: Add the missing colon.

Missing comma.

Cause: There was no comma where one was expected.

Action: Add the missing comma.

Missing curly brace.

Cause: There was no opening curly brace where one was expected.

Action: Add the missing opening curly brace.

Missing dot operator.

Cause: There was no dot operator where one was expected.

Action: Add the missing dot operator.

Missing element in INTO list: element

Action: You must add element to the INTO list.

Missing equal sign in assignment.

Cause: A Java expression is in position of a return variable, but no equal sign follows the expression as required by assignment syntax.

Action: Add the missing assignment operator.

Missing parenthesis.

Cause: There was no opening parenthesis where one was expected.

Action: Add the missing opening parenthesis.

Missing semicolon.

Cause: There was no semicolon where one was expected.

Action: Add the missing semicolon.

Missing square bracket.

Cause: There was no opening square bracket where one was expected.

Action: Add the missing opening square bracket.

Missing terminating "token".

Cause: No matching token token was found in the SQL statement.

Mode of left-hand-side expression in SET statement was changed to OUT.

Cause: In a SET :x = ... statement you specified the mode of the host expression x as IN or INOUT. This is incorrect.

Action: Either omit the mode, or specify the mode as OUT.

Modifier modifier not allowed in declaration.

Cause: Not all modifiers are permitted in a SQLJ class declaration.

Modifier modifier not allowed in top-level declarations.

Cause: Not all modifiers are permitted in a SQLJ class declaration.

More than one INTO ... bind list in SQL statement.

Action: Eliminate superfluous INTO ... bind lists.

moving original filename to new filename

Cause: A backup of the profile was created by the profile conversion utility. The backup file is named new filename.

Action: No further action required.

Must be connected online to perform optimization for result set columns.

Cause: User specified the -P-Coptcols option. The profile customizer must be able to log on to the database in order to determine the types and sizes of all result set columns.

Action: Specify connection information through the -P-user, -P-password, and -P-url options.

Must specify STRUCT or JAVA_OBJECT in entry "entry"

Cause: The SQL type to which Java class maps must either be a structured type (STRUCT xxx) or a SQL type capable of holding Java object instances (JAVA_OBJECT xxx).

Name 'illegal identifier' cannot be used as an identifier.

Cause: The string 'illegal identifier' cannot be used as an identifier because it represents some other language element (for example, operator, punctuation, control structure, etc.).

Action: Use some other name for the identifier.

Negation operator requires boolean operand.

Cause: Negation operator can operate only on a boolean operand.

Action: Check the type of the operand.

No ";" permitted after stored procedure/function call.

Cause: SQLJ does not permit a terminating semicolon after a stored procedure or function invocation.

No connect string specified for context context.

Cause: No JDBC connection URL was given for context.

Action: Specify a JDBC URL in the -url@context option, or in the -user@context option.

No connect string specified.

Cause: No JDBC connection URL was given.

Action: Specify a JDBC URL in the -url option, or in the -user option.

No connection specified for context context. Will attempt to use connection defaultconnection instead.

Cause: If no explicit connection information is given for the online checking of context, SQLJ will use the values for the default online exemplar schema.

no customizer specified

Cause: Profile customization was requested but no customizer was specified.

Action: Set the profile customizer using the "customizer" or "default-customizer" option.

No instrumentation: class already instrumented.

Cause: This class file was already instrumented with the source locations from the original .sqlj file.

No instrumentation: no line info in class.

Cause: This class file does not have any line information and thus cannot be instrumented. Most likely, this happened because you used the -O (optimize) flag to the Java compiler, which will strip line information from the class file.

No INTO variable for column #pos: "name" type

Cause: In a SELECT-INTO statement, the column name at position pos of type type does not have a corresponding Java host expression.

Action: Either expand your INTO-list, or change your SELECT statement.

No offline checker specified for context context.

Cause: No offline analysis can be performed for context.

No offline checker specified.

Cause: No offline analysis can be performed.

No online checker specified for context context. Attempting to use offline checker instead.

Cause: The context will be checked offline, even though online checking was requested.

No online checker specified. Attempting to use offline checker instead.

Cause: Offline checking will be performed, even though online checking was requested.

No SQL code permitted after stored procedure/function call. Found: "token" ...

Cause: SQLJ does not permit additional statements after a stored procedure or function invocation.

No suitable online checker found for context context. Attempting to use offline checker instead.

Cause: None of the online checkers is capable to check context.

No suitable online checker found. Attempting to use offline checker instead.

Cause: None of the online checkers is capable to check the default context.

No user specified for context context. Will attempt to connect as user user.

Cause: If a user is specified for the default context, SQLJ will attempt to check online for all contexts.

No variable name defined in class classname

Cause: A variable named name could not be found in class classname.

Action: Verify that the variable exists and is accessible in the named class.

not a directory: name

Cause: You have directed SQLJ via the -d or the -dir option to create output files into a directory hierarchy starting with the root directory name. Ensure that the root directory exists and is writable.

not a valid input filename: filename

Cause: Input files to SQLJ must have the extension ".sqlj", ".java", ".ser", or ".jar".

Not an interface: name

Cause: The name name was used in the implements clause. However, it does not represent a Java interface.

Not an original sqlj file - no instrumentation.

Cause: The Java file from which the class file was compiled was not generated by the SQLJ translator.

Not found: name. There is no stored procedure or function of this name.

Cause: A stored function or procedure could not be found.

option is read only: option name

Cause: An option value was specified for the read-only option named option name.

Action: Verify the intended use of the option.

Option optparamdefaults: Invalid JDBC type in size hint

Cause: User specified the -P-Coptparamdefaults option which contains a comma-separated list of size hints of the form <JDBC-type>(<number>) or <JDBC-type>(). <JDBC-type> was not one of CHAR, VARCHAR, VARCHAR2, LONG, LONGVARCHAR, BINARY, RAW, VARBINARY, LONGVARBINARY, LONGRAW, or a wildcard XXX% matching one or more of these, or CHAR_TYPE, or RAW_TYPE.

Option optparamdefaults: Invalid or missing size indicator in size hint

Cause: User specified the -P-Coptparamdefaults option which contains a comma-separated list of size hints. One or more of the hints did not have the form <JDBC-type>(<number>) or <JDBC-type>().

Oracle features used:

Cause: The Oracle customizer "summary" option was enabled. A list of Oracle specific types and features used by the current profile follows this message.

Action: If wider portability is desired, types and features listed may need to be removed from the program.

PLEASE ENTER PASSWORD FOR user AT connection >

Action: You are requested to enter a user password and hit <enter>.

positioned update/delete not supported

Cause: Select and use a ROWID to refer to a particular table row.

Action: A SQL positioned update or delete operation was contained in the profile. This operation cannot be executed by Oracle at runtime.

Premature end-of-file.

Cause: The source file ended before the class declaration was completed.

Action: Check the source file, paying attention to missing quotation marks; correct placement or possible omission of enclosing parenthesis, brackets, or braces; missing comment delimiters; and that it contains at least one valid Java class.

Public class class name must be defined in a file called filename.sqlj or filename.java

Cause: Java requires that the class name must match with the base name of the source file that contains its definition.

Action: Rename the class or the file.

Public declaration must reside in file with base name name, not in the file file.

Action: Ensure that the name of the SQLJ file name and the public class name match.

re-installing Oracle customization

Cause: An older version of the Oracle customization was previously installed into the profile being customized. The old customization was replaced with a more recent version.

Action: The profile is ready for use with Oracle. No further action required.

recursive iterators not supported: iterator name

Cause: A SQL operation used a recursively defined iterator type. A recursively defined iterator type "A" is an iterator which eventually contains "A" as one of its column types. An iterator is said to eventually contain "A" if it has a column type that is either "A" or an iterator that itself eventually contains "A".

Action: Use an iterator that is not recursive.

registering Oracle customization

Cause: The Oracle customization was installed into the profile being customized.

Action: The profile is ready for use with Oracle. No further action required.

Repeated host item name in positions pos1 and pos2 in SQL block. Behavior is vendor-defined and non portable.

Cause: The host variable name appeared in more than one position with the mode OUT, or INOUT, or it appears with the mode IN as well as OUT or INOUT.

Action: Be aware that host variables are not passed by reference, but each occurrence is passed individually by value-result. To avoid this message, use separate host variables for each OUT or INOUT position.

Result expression must be an lvalue.

Cause: The left-hand side of a SQLJ assignment statement must be an assignable expression. Java variables, fields, and array elements are assignable expressions.

Return type javatype of stored function is not legal.

Cause: The stored function returns a Java type javatype, which does not refer to a valid Java class.

Return type type is not a visible Java type.

Cause: The type type is not a publicly visible Java type, and thus no instances of this type can be created and returned from a database driver.

Action: Declare type type as public.

Return type type is not supported in Oracle SQL.

Cause: The Java type type cannot be returned by a SQL statement.

Return type type of stored function is not a JDBC output type. This will not be portable.

Cause: Use types as per the JDBC specification for maximum portability.

Return type type of stored function is not a visible Java type.

Cause: The type type is not a publicly visible Java type, and thus no instances of this type can be created and returned from a database driver.

Action: Declare type type as public.

Return type incompatible with SELECT statement: type is not an iterator type.

Action: SQL queries that return a value must be assigned to a java.sql.ResultSet, or to a positional or named iterator object.

Select list has only n elements. Column type #pos is not available.

Cause: The database query returns fewer columns than required by the iterator or by an INTO host variable list.

Action: Either change the query, or remove elements from the INTO-list.

Select list has only one element. Column type #pos is not available.

Cause: The database query returns fewer columns than required by the iterator or by an INTO host variable list.

Action: Either change the query, or remove elements from the INTO-list.

Shift operator requires integral operands.

Cause: Shift operator can operate only on numeric operands.

Action: Check the types of operands.

Sign operator requires numeric operand.

Cause: Sign operator can operate only on a numeric operand.

Action: Check the type of the operand.

Size designation size hint for parameter param ignored.

Cause: A size hint was given for parameter param. However, this parameter does not have a variable size type. Therefore the size hint will be ignored.

SQL checker did not categorize this statement.

Cause: The specified SQL checker did not determine the nature of this SQL statement.

Action: Your SQL checker should be categorizing every SQL statement. Check the SQL checker that is being used (-online and -offline options).

SQL checking did not assign mode for host variable #n - assuming IN.

Cause: The specified SQL checker did not assign mode information for this host variable. The mode IN is assumed.

Action: Your SQL checker should be assigning modes to all host expressions. Check the SQL checker that is being used (-online and -offline options).

SQL checking did not assign mode for host variable #n.

Cause: The specified SQL checker did not assign mode information for this host variable. The mode IN is assumed.

Action: Your SQL checker should be assigning modes to all host expressions. Check the SQL checker that is being used (-online and -offline options).

SQL checking did not assign mode for host variable name (at position #n) - assuming IN.

Cause: The specified SQL checker did not assign mode information for this host variable. The mode IN is assumed.

Action: Your SQL checker should be assigning modes to all host expressions. Check the SQL checker that is being used (-online and -offline options).

SQL checking did not assign mode for host variable name (at position #n).

Cause: The specified SQL checker did not assign mode information for this host variable. The mode IN is assumed.

Action: Your SQL checker should be assigning modes to all host expressions. Check the SQL checker that is being used (-online and -offline options).

SQL statement could not be categorized.

Cause: This SQL statement did not begin with a recognizable SQL or SQLJ keyword, such as SELECT, UPDATE, DELETE, ..., CALL, VALUES, FETCH, CAST, etc.

Action: Check the syntax of your SQL statement.

SQL statement does not return a value.

Cause: The program contained an assignment statement that was neither a query nor a stored function call. Only queries and functions can return immediate results.

SQL statement with INTO ... bind variables can not additionally return a value.

Action: Either remove INTO ... bind list, or remove assignment to an iterator.

SQLJ declarations cannot be inside method blocks.

Cause: Method blocks cannot contain SQLJ declarations.

Action: Move the SQLJ declaration from the method block scope to the class scope or file scope instead (renaming the declared type and all references to it if necessary to avoid ambiguity).

SQLJ runtime library is missing. You need to provide sqlj runtime library on the CLASSPATH.

Cause: From version 8.1.7 on, the translator.zip library does not contain the SQLJ runtime classes any longer.

Action: Ensure that one of runtime.zip, runtime11.zip, or runtime12.zip is available on your CLASSPATH or via the -classpath option. Depending on your JDBC and Java environment, the error message suggests a particular runtime version.

Statement execution expression does not have a Java type.

Cause: No valid Java type could be derived for your execution context expression.

Stored function or procedure syntax does not follow SQLJ specification.

Cause: Stored functions use the VALUES(...) syntax, while stored procedures use the CALL ... syntax.

Action: SQLJ understands your function/procedure syntax. However, if you want your SQLJ program to be maximally portable, you may want to use the documented syntax.

Stored function syntax does not follow SQLJ specification.

Cause: Stored functions use the VALUES(...) syntax.

Action: SQLJ understands your function syntax. However, if you want your SQLJ program to be maximally portable, you may want to use the documented syntax.

Stream column name #pos not permitted in SELECT INTO statement.

Cause: You cannot use stream types, such as sqlj.runtime.AsciiStream, in a SELECT INTO statement.

Action: For a single stream column, you can use a positional iterator and place the stream column at the end. Alternatively, you can use a named iterator, ensuring that the stream columns (and other columns) are accessed in order.

Syntax [<connection context>, <execution context>, ...] is illegal. Only two context descriptors are permitted.

Action: Use #sql [<connection context>, <execution context>] { ... }; for specifying both connection and execution contexts.

The class prefix is prefix, which has the SQLJ reserved shape <file>_SJ.

Cause: You should avoid class names of the form <file>_SJ<suffix>, which are reserved for SQLJ-internal use.

The column column type is not nullable, even though it may be NULL in the select list. This may result in a runtime error.

Cause: Nullability in Java does not reflect nullability in the database.

The keyword non-portable keyword for iterator movement is not portable - use portable expression instead.

Cause: The syntax used here is not part of the SQLJ ISO standard.

The option value -warn=value is invalid. Permitted values are: all, none, nulls, nonulls, precision, noprecision, strict, nostrict, verbose, noverbose.

Action: Use only permitted values in your -warn option.

The result set column "name" type was not used by the named cursor.

Cause: The column name of type type was selected by the query. However, this column is not required by the named iterator.

Action: Change the query or ignore this message (you can turn it off with the -warn=nostrict option).

The tag tag in option option is invalid. This option does not permit tags.

Action: Only the -user, -url, -password, -offline, and -online options are used with tags. Specify the option as -option not as -option@tag.

The type of the context expression is type. It does not implement a connection context.

Cause: A connection context must implement sqlj.runtime.ConnectionContext.

The type of the statement execution context is type. It does not implement an ExecutionContext.

Cause: An execution context must be an instance of class sqlj.runtime.ExecutionContext.

This SQLJ runtime version requires JDK version 1.2 or later.

Cause: You are using runtime12.zip under JDK 1.1.x.

Action: Either run in a JDK 1.2 environment, or use a JDK 1.1.x compatible runtime, such as runtime.zip or runtime11.zip.

This type is not legal as an IN argument.

Cause: The Java type is supported as an OUT argument but not as an IN argument by your JDBC driver.

This type is not legal as an OUT argument.

Cause: The Java type is supported as an IN argument but not as an OUT argument by your JDBC driver.

Type type for column column is not a JDBC type. Column declaration is not portable.

Action: Use types as per the JDBC specification for maximum portability.

Type type for column column is not a valid Java type.

Cause: No valid Java class declaration could be found for type.

Type type of column column is not publicly accessible.

Cause: The Java class type of SELECT-list column column is not a publicly visible class, and thus cannot be instantiated by a driver.

Action: Use a public Java type in the SELECT-list.

Type type of host item #n is not permitted in JDBC. This will not be portable.

Action: Use types as per the JDBC specification for maximum portability.

Type type of host item item (at position #n) is not permitted in JDBC. This will not be portable.

Action: Use types as per the JDBC specification for maximum portability.

Type type of INTO-list item n is not publicly accessible.

Cause: The Java class type of INTO-list item n is not a publicly visible class, and thus cannot be instantiated by a driver.

Action: Use a public Java type in the INTO-list.

Type cast operator requires non-void operand.

Cause: A void type cannot be cast to any actual type.

Action: Correct the type of the operand, or remove the cast operation altogether.

Type map map value at key is not a String.

Cause: You specified the type map resource map with your connection context. The entry for the key key is not an instance of java.lang.String.

Action: Ensure that every key maps to a non-null String value.

Type map map value at key is null.

Cause: You specified a type map resource map with your connection context. The entry for the key key is null.

Action: Ensure that every key maps to a non-null String value.

Type map map: inner Java class java type must be specified as required type at entry "entry"

Cause: When referencing an inner class in a type map, you wrote the class name the same way it would be written in Java source: <package name>.<outer class>.<inner class>. However, at runtime the JavaVM will not be able to load this class with Class.forName.

Action: In the type map make reference to inner classes as follows: <package name>.<outer class>$<inner class>.

Type map resource resource appears to have the same name as a class. You should rename the resource.

Cause: The resource name resource coincides with an existing class name. This can cause problems when you run your program.

Type mismatch in argument #n of INTO-list. Expected: type1 Found: type2

Cause: The Java type type2 of your host expression #n in the INTO-list does not match the Java type type1 prescribed by the positional iterator.

Unable to check SQL query. Error returned by database is: error

Cause: The database issued an error message when checking a SQL query against the exemplar schema.

Action: Verify whether the SQL query is correct.

Unable to check SQL statement. Could not parse the SQL statement.

Cause: An error occurred during parsing of a SQL statement, making it impossible to determine the contents of the select list.

Action: Verify the syntax of your SQL query.

Unable to check SQL statement. Error returned by database is: error

Cause: The database issued an error message when checking a SQL statement against the exemplar schema.

Action: Verify whether the SQL statement is correct.

Unable to check WHERE clause. Error returned by database is: error

Cause: When determining the shape of a query from an exemplar schema, the database issued an error message.

Action: Verify the syntax of your SQL query.

Unable to connect to data source "data source". Will attempt to use JDBC connection instead.

Cause: The connection context has the dataSource attribute value data source. Since the translator was unable to connect to this data source, it now attempts to use a JDBC connection instead.

Unable to convert profile to a class file.

Cause: SQLJ could not convert the profile file profile to a class file.

Action: Ensure that the profile file is present, that directory specified in the -d option is writable, and that the Java compiler is accessible.

Unable to create a connection context instance of context name: message.

Cause: The SQLJ customizer is unable to instantiate the connection context type context name.

Action: Ensure that the context class context name is declared as public and is available on the CLASSPATH. This is particularly important if this context has declared a typeMap.

unable to create backup file

Cause: A backup file for the current profile could not be created. This indicates that a new file could not be created in the directory containing the profile. The original profile remains unchanged.

Action: Verify that the directory containing the profile has the proper permissions and rerun the customizer harness. Omit the "backup" option to customize the profile without creating a backup file.

unable to create output file file

Action: Ensure that SQLJ has the appropriate permissions to create the file file.

unable to create package directory directory

Cause: You have directed SQLJ via the -d or the -dir option to create output files into a directory hierarchy. Ensure that SQLJ is able to create appropriate subdirectories.

unable to delete filename

Cause: The profile file filename could not be removed by the profile conversion utility.

Action: Verify that the file given by filename has the proper permissions.

Unable to determine type of WITH-clause attribute name: circular reference.

Cause: The value of the WITH-clause attribute name directly or indirectly referenced itself. The type of the attribute cannot be determined in such cases.

Action: Update the WITH-clause value so it does not refer to itself.

unable to find input file filename

Action: Ensure that file filename exists.

Unable to initialize system classes: error. This can be caused by a version mismatch between the SQLJ runtime and the Java environment.

Cause: The SQLJ runtime does not appear to be compatible with the Java environment.

Action: Under JDK 1.1.x use runtime.zip or runtime11.zip, under JDK 1.2 or later use (preferably) runtime12.zip or runtime.zip.

Unable to instantiate the offline checker class.

Cause: Class class does not have a public default constructor.

Unable to instantiate the online checker class.

Cause: Class class does not have a public default constructor.

Unable to instrument args: message

Cause: SQLJ could not instrument the classfile args due to some error that occurred during instrumentation.

Action: Ensure that the class file is present, that it is not corrupt, and that it is writable.

unable to load class class name: error description

Cause: A parameter or iterator column with type class name used in this SQL statement could not be loaded by the customizer. To perform customization, the customizer must be able to load all classes used in the SQL operation.

Action: Verify the type class name exists in ".class" format, and can be found on the CLASSPATH. Examine error description for details of the problem.

Unable to load the offline checker class.

Cause: The Java class class could not be found.

Unable to load the online checker class.

Cause: The Java class class could not be found.

unable to move original filename to new filename

Cause: The profile file original filename could not be renamed as new filename by the profile conversion utility.

Action: Verify that the files and output directory have the proper permissions.

Unable to obtain DatabaseMetaData to determine the online checker to use for context context. Attempting to use offline checker instead.

Cause: JDBC database meta data was unavailable, or did not supply information on the database name and version.

Action: Ensure that you have a proper JDBC driver available.

Unable to obtain description of stored function or procedure: error.

Cause: An error occurred when trying to characterize a stored function or procedure invocation.

Action: Ensure that you are calling a proper stored procedure or function. Ensure that you are using an appropriate JDBC driver to check your SQLJ program.

Unable to obtain line mapping information from Java file args: message

Cause: SQLJ could not obtain line mapping information from the Java file args due to some error.

Action: Ensure that the Java file is present, that it is not corrupt, and that it is readable.

unable to open temporary output file filename

Action: Ensure that you can create a temporary file filename, and that the directory is writable.

Unable to perform online type checking on weakly typed host item untypables

Cause: For each of the Java host expressions, SQLJ determines a corresponding SQL type. These SQL types are required for checking the statement online. When you are using "weak types", SQLJ cannot check your SQL statement online in may cases.

Action: Replace weak types with user-defined types.

Unable to perform semantic analysis on connection connectionUrl by user user. Error returned by database is: error

Cause: SQLJ failed in establishing a connection for online checking.

unable to read input file filename

Action: Ensure that the file filename exists, and that you have read permissions on it.

Unable to read password from user: error.

Cause: An error occurred when reading a user password.

unable to read property file property file

Action: You specified a property file in the -props=property file option. Ensure that this file exists and is readable.

Unable to read translation state from file: message

Action: Ensure that SQLJ can create and subsequently read a temporary file file.

Unable to remove file file1 or file2

Cause: SQLJ was unable to remove temporary files that it created during translation.

Action: Check the default permissions for newly created files.

unable to remove file filename

Cause: During profile customization, a temporary file named filename was created that was unable to be removed.

Action: Verify the default permissions for newly created files. Manually remove the temporary file.

unable to rename file original filename to new filename

Cause: During profile customization, a temporary file named original filename could not be renamed new filename. This indicates that the customizer harness was unable to replace the original profile or .jar file with the customized version.

Action: Verify that the original profile or jar file is writable.

unable to rename output file from original filename to new filename

Action: Ensure that new filename is writable.

Unable to resolve stored function function - n declarations match this call.

Cause: The stored function invocation matches more than one stored function signature in the database.

Action: Use Java host expressions rather than SQL expressions in the arguments to the stored function to enable signature resolution.

Unable to resolve stored procedure procedure - n declarations match this call.

Cause: The stored procedure invocation matches more than one stored procedure signature in the database.

Action: Use Java host expressions rather than SQL expressions in the arguments to the stored procedure to enable signature resolution.

Unable to resolve type or value of WITH attribute attribute.

Cause: You used a WITH attribute with your iterator or context declaration. The value of the WITH attribute was not a literal or symbolic constant, which made it impossible for SQLJ to determine the Java type and value of the attribute.

Action: Use a literal constant or a symbolic constant to specify the value of the WITH attribute.

Unable to write Java compiler command line to file: message

Action: Ensure that SQLJ can create and subsequently read a temporary file file.

Unable to write translation state to file: message

Action: Ensure that SQLJ can write to a temporary file file.

Unbalanced curly braces.

Cause: There was no closing curly brace where one was expected.

Action: Add the missing closing curly brace.

Unbalanced parenthesis.

Cause: There was no closing parenthesis where one was expected.

Action: Add the missing closing parenthesis.

Unbalanced square brackets.

Cause: There was no closing square bracket where one was expected.

Action: Add the missing closing square bracket.

unchanged

Cause: The profile was not modified by the customization process.

Action: Correct errors that prevented customization, if any. Note that some customizers (such as the profile printer) intentionally leave the profile unchanged; in such cases, this is the expected message.

Undefined variable or class name: name

Cause: The name name was used in an expression but did not correspond to any accessible variable or class name.

Action: Verify that the name refers to an accessible variable or class name.

Undefined variable, class, or package name: name

Cause: The name name was used in an expression but did not correspond to any accessible variable or class name.

Action: Verify that the name refers to an accessible variable or class name.

Undefined variable: name

Cause: The name name was used in an expression but did not correspond to any accessible variable.

Action: Verify that the name refers to an accessible variable.

unexpected error occurred...

Action: An unexpected error occurred during SQLJ translation. Contact Oracle if this error persists.

Unexpected token 'unexpected token' in Java statement.

Cause: Java statement cannot have token 'unexpected token' in the position in which it appears in the source code.

Action: Check the syntax of the statement.

unknown digest algorithm: algorithm name

Cause: An unknown jar message digest algorithm was specified in the customizer harness "digests" option.

Action: Verify that algorithm name is a valid message digest algorithm and that the corresponding MessageDigest implementation class exists in the CLASSPATH.

Unknown identifier 'unknown identifier'.

Cause: The identifier 'unknown identifier' has not been defined.

Action: Check the identifier for typing errors, and/or make sure that it has been defined.

Unknown identifier.

Cause: The identifier has not been defined.

Action: Check the identifier for typing errors, and/or make sure that it has been defined.

unknown option found in location: name

Action: Ensure that you are using a valid SQLJ option. Run sqlj -help-long to obtain a list of supported options.

unknown option type: option name

Cause: The option named option name could not be handled by the customizer harness. This often indicates a non-standard, customizer-specific option for which an appropriate JavaBeans property editor could not be found.

Action: Verify that property editors associated with the current customizer are accessible on the CLASSPATH. As a workaround, discontinue use of the option or use a different customizer.

Unknown target type in cast expression.

Cause: The target type of the cast operation has not been defined.

Action: Verify the type name and/or make sure that it has been defined.

unrecognized option: option

Cause: An unknown option was given to the profile conversion utility.

Action: Verify that the option is spelled correctly.

Unrecognized SET TRANSACTION syntax at "token" ...

Cause: SQLJ was not able to understand this SET TRANSACTION statement.

Action: If you rely on SQLJ to recognize this particular SET TRANSACTION clause, you should use the documented syntax.

Unrecognized SET TRANSACTION syntax.

Cause: SQLJ was not able to understand this SET TRANSACTION statement.

Action: If you rely on SQLJ to recognize this particular SET TRANSACTION clause, you should use the documented syntax.

Unrecognized SQL statement: keyword

Cause: The SQL statement was introduced with the keyword keyword. Neither SQLJ nor the JDBC driver recognized it as a SQL keyword.

Action: Check your SQL statement. If this is a vendor-specific keyword that neither your JDBC driver nor your SQL checker knows about, you can ignore this message.

Unsupported file encoding

Action: Ensure that the encoding specified in the -encoding option is supported by your Java VM.

Unsupported Java type for host item #n: type.

Cause: The Java type type is not supported as a host item by your JDBC driver.

Action: Use a different Java type in your host expression. Possibly update your JDBC driver.

Unsupported Java type for host item name (at position #n): type.

Cause: The Java type type is not supported as a host item by your JDBC driver.

Action: Use a different Java type in your host expression. Possibly update your JDBC driver.

Unsupported Java type for item #pos of INTO-list: type.

Cause: The Java class type of INTO-list item pos is not supported by your JDBC driver.

Action: Use supported Java types in the INTO-list. Possibly update your JDBC driver.

Unterminated comment.

Cause: The source file ended in a comment before the class declaration was completed.

Action: Check the source file for a missing comment delimiter.

valid Oracle customization exists

Cause: A valid Oracle customization was previously installed into the profile being customized. The profile was not modified.

Action: The profile is ready for use with Oracle. No further action required.

Value of iterator attribute attribute must be a boolean.

Action: This iterator with-clause attribute requires a boolean value. Specify one of: attribute=true, or attribute=false.

Value of iterator attribute updateColumns must be a String containing a list of column names.

Action: Declare the updateColumns attribute in your iterators with-clause as follows: updateColumns="col1,col2,col3" where the column names represent the updatable columns.

Value of the iterator with-clause attribute sensitivity must be one of SENSITIVE, ASENSITIVE, or INSENSITIVE.

Action: To set sensitivity, specify one of: sensitivity=SENSITIVE, sensitivity=ASENSITIVE, or sensitivity=INSENSITIVE on the with-clause of your iterator declaration.

Value returned by SQL query is not assigned to a variable.

Cause: User is ignoring the result returned by a query.

Action: Verify your SQL statement, and that it is your intention to discard the result of the SELECT.

Value returned by SQL stored function is not assigned to a variable.

Cause: User is ignoring the result returned by a stored function call.

Action: Verify your SQL statement, and that it is your intention to discard the result of a stored function call.

WITH attribute attribute must be of type Java type expected, not Java type seen.

Cause: You used a WITH attribute with your iterator or context declaration. The Java type of this attribute should be Java type expected. The actual type of the attribute, however, was Java type seen.

Action: Use the Java type Java type expected for this attribute.

You are using a non-Oracle JDBC driver to connect to an Oracle database. Only JDBC-generic checking will be performed.

Cause: In order to perform Oracle-specific checking, an Oracle JDBC driver is required.

You are using an Oracle 8.0 JDBC driver, but connecting to an Oracle7 database. SQLJ will use Oracle7 specific SQL checking.

Cause: Translation with an online connection will automatically be limited to the features of the database that you are connected to.

Action: If you use the Oracle 8.0 JDBC driver but also want to connect to Oracle7 databases, you may want to explicitly specify oracle.sqlj.checker.Oracle7OfflineChecker and oracle.sqlj.checker.Oracle7JdbcChecker for offline and online checking, respectively.

You are using an Oracle 8.1 JDBC driver, but are not connecting to an Oracle8 or Oracle7 database. SQLJ will perform JDBC-generic SQL checking.

Cause: This version of SQLJ does not recognize the database you are connecting to.

Action: Connect to an Oracle7 or Oracle8 database.

You are using an Oracle 8.1 JDBC driver, but connecting to an Oracle7 database. SQLJ will use Oracle7 specific SQL checking.

Cause: Translation with an online connection will automatically be limited to the features of the database that you are connected to.

Action: If you use the Oracle 8.1 JDBC driver but also want to connect to Oracle7 databases, you may want to explicitly specify oracle.sqlj.checker.Oracle8To7OfflineChecker and oracle.sqlj.checker.Oracle8To7JdbcChecker for offline and online checking, respectively.

You are using an Oracle JDBC driver, but connecting to an non-Oracle database. SQLJ will perform JDBC-generic SQL checking.

Cause: This version of SQLJ does not recognize the database you are connecting to.

Action: Connect to an Oracle7 or Oracle8 database

You cannot specify both, source files (.sqlj,.java) and profile files (.ser,.jar)

Cause: Either use SQLJ to translate, compile, and customize .sqlj and .java source files, or use SQLJ to customize profile files by specifying .ser files and .jar archives containing .ser files, but not both.

Runtime Messages

This section provides a list of error messages that users may encounter from the SQLJ runtime, including SQL state, cause, and action information.

See "Retrieving SQL States and Error Codes" for information about SQL states.

java.io.InvalidObjectException: invalid descriptor: descriptor value

Cause: In the loading of a profile object, it was determined that the descriptor object of one of the SQL operations was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.io.InvalidObjectException: invalid execute type: type value

Cause: In the loading of a profile object, it was determined that the method used to execute one of the SQL operations was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.io.InvalidObjectException: invalid modality: mode value

Cause: In the loading of a profile object, it was determined that the modality of one of the SQL operation parameters was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.io.InvalidObjectException: invalid result set type: type value

Cause: In the loading of a profile object, it was determined that the type of result produced by of one of the SQL operations was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.io.InvalidObjectException: invalid role: role value

Cause: In the loading of a profile object, it was determined that the contents of one of the SQL operations was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.io.InvalidObjectException: invalid statement type: type value

Cause: In the loading of a profile object, it was determined that the statement type of one of the SQL operations was invalid. This suggests that the profile does not conform to the standard, or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.lang.ClassNotFoundException: not a profile: profile name

Cause: The object created as the profile named profile name cannot be used as a profile. This error suggests that the file containing the profile has unknown data or has been corrupted.

Action: Recreate the profile by retranslating the original source file.

java.lang.ClassNotFoundException: unable to instantiate profile profile name

Cause: The profile named profile name exists but could not be instantiated. This suggests that the profile contains invalid data or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file.

java.lang.ClassNotFoundException: unable to instantiate serialized profile profile name

Cause: The profile named profile name exists as type sqlj.runtime.SerializedProfile, but could not be instantiated. A profile of this type usually indicates that the profile has been converted to .class format. This error suggests that the profile contains invalid data or was read from a corrupted file.

Action: Recreate the profile by retranslating the original source file. Use the ser2class option if the profiles should be created in .class format.

java.sql.SQLException: closed connection

SQL State: 08000

Cause: A attempt was made to close a connection context object whose underlying JDBC connection object was already closed.

Action: Ensure that the underlying JDBC connection was not inadvertently closed. Also, if several SQLJ connection contexts share the same underlying JDBC connection, you have to ensure that when you close the connection context objects all but the last close() invokes the method close(ConnectionContext.KEEP_CONNECTION). This ensures that the underlying JDBC connection remains open for the duration and all associated JDBC resources -such as JDBC statement objects- can be properly released.

java.sql.SQLException: could not establish connection to DataSource data source name: message

SQL State: 08003

Cause: Unable to establish a connection with data source data source name.

Action: Examine the message text message to determine the action required for connecting with data source data source name.

java.sql.SQLException: could not load context type map type map resource: message

SQL State: 08000

Cause: Either the type map could not be found or loaded from the resource type map resource, or the type map contained an invalid entry, or a Java class referenced in the type map could not be found.

Action: Examine the message to determine the nature of the failure, and how it could be remedied.

java.sql.SQLException: expected x columns in select list but found y

SQL State: 42122

Cause: The query executed selects x items, but has y INTO-list items or is assigned to an iterator containing y columns.

Action: Correct the program so that the number of INTO-list items or iterator columns matches the number of items selected.

java.sql.SQLException: expected instance of ForUpdate iterator at parameter x, found class class name

SQL State: 46130

Cause: A positional SQL operation contained a host expression with runtime type class name as the target of the CURRENT OF clause. The class name must be an instance of the sqlj.runtime.ForUpdate interface.

Action: Update the declaration of the iterator type passed as the target of the CURRENT OF clause. Include the ForUpdate interface in the implements clause.

java.sql.SQLException: expected statement with no OUT parameters: {statement}

SQL State: 46130

Cause: A SQL operation unexpectedly contained one or more OUT or INOUT parameters. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. Alternatively, the profile may have been read from a corrupted file.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: expected statement with OUT parameters: {statement}

SQL State: 46130

Cause: A SQL operation contained no OUT or INOUT parameters when it was expected to have at least one. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. Alternatively, the profile may have been read from a corrupted file.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: expected statement {statement} to be executed via executeQuery

SQL State: 46130

Cause: A SQL operation was unexpectedly requested to produce an update count instead of a result set. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. Alternatively, the profile may have been read from a corrupted file.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: expected statement {statement} to be executed via executeUpdate

SQL State: 46130

Cause: A SQL operation was unexpectedly requested to produce a result set instead of an update count. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. Alternatively, the profile may have been read from a corrupted file.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: expected statement {statement} to use x parameters, found y

SQL State: 46130

Cause: A SQL operation that was expected to contain y host expressions was found to contain x host expressions instead. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. Alternatively, the profile may have been read from a corrupted file.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: found null connection context

SQL State: 08003

Cause: The connection context instance used in an executable SQL statement was null.

Action: Initialize the connection context instance to a non-null value. If the SQL statement uses an implicit connection context, it is initialized using the static setDefaultContext method of the sqlj.runtime.ref.DefaultContext class.

java.sql.SQLException: found null execution context

SQL State: 08000

Cause: The execution context instance used in an executable SQL statement was null.

Action: Initialize the execution context instance to a non-null value.

java.sql.SQLException: invalid batch limit: batch limit

SQL State: 08000

Cause: The value batch limit is not a valid batch limit.

Action: Ensure that the batch limit is either non-negative or that it is the constant sqlj.runtime.ExecutionContext.AUTO_BATCH.

java.sql.SQLException: Invalid column name

SQL State: 46121

Cause: There was a mismatch between a column name declared in the named iterator used in this SQL operation and a column name contained in the underlying result set. Each column of a named iterator must uniquely case-insensitive match the name of a column in the underlying result set.

Action: Change either the name of the column in the named iterator, or the name of the column in the associated query, so that they match.

java.sql.SQLException: invalid iterator type: type name

SQL State: 46120

Cause: An object returned or used by this SQL operation with type type name was not a valid iterator type. This may indicate that the iterator class was produced by a non-standard translator.

Action: Verify the original SQL operation and the iterator types it uses are valid. Retranslate the source files as needed.

java.sql.SQLException: Java serialization not possible into SQL type: code

SQL State: 08000

Cause: The SQL type -as reflected in the OracleTypes code code is not suitable for serialization/deserialization of Java objects.

Action: Ensure that you serialize/deserialize Java objects into a SQL type that supports this, such as RAW or BLOB.

java.sql.SQLException: key is not defined in connect properties: key name

SQL State: 08000

Cause: The key named key name was not defined in the connection properties resource file. Information contained in the connection properties resource file is used to establish a database connection, and must include a key named key name.

Action: Add the key key name to the connection properties file with an appropriate value for the desired connection.

java.sql.SQLException: multiple rows found for select into statement

SQL State: 21000

Cause: The execution of a SELECT INTO statement produced a result that contained more than one row.

Action: Correct the SELECT INTO query or queried data so that exactly one row is selected.

java.sql.SQLException: no rows found for select into statement

SQL State: 02000

Cause: The execution of a SELECT INTO statement produced a result that contained no rows.

Action: Correct the SELECT INTO query or queried data so that exactly one row is selected.

java.sql.SQLException: null connection

SQL State: 08000

Cause: A null SQLJ connection context or JDBC connection object was passed to the constructor of a connection context class.

Action: If a JDBC connection is used, establish a database connection with the JDBC connection object before passing it to the connection context constructor. For Oracle JDBC drivers, this is done using one of the static getConnection methods of the java.sql.DriverManager class. If a connection context object is used, make sure it has been properly initialized before passing it to the constructor. If the default connection context is used, call setDefaultContext before using the default context.

java.sql.SQLException: only fetch forward direction permitted

SQL State: 46110

Cause: This Oracle JDBC driver only supports FETCH FORWARD result sets.

Action: Update to an 8.1.6 or later JDBC driver with full support for scrollable result sets.

java.sql.SQLException: profile profile name not found: error description

SQL State: 46130

Cause: The profile named profile name could not be found or instantiated. The problem is further explained by error description.

Action: Consult the recommended action for the problem detail given by error description.

java.sql.SQLException: SQL operation currently in use

SQL State: 46000

java.sql.SQLException: streaming of BLOB data not supported in this driver

SQL State: 46110

Cause: Your JDBC driver does not support the streaming of raw data into BLOBS.

Action: Update to a newer Oracle JDBC driver version, or use a RAW column to hold serialized Java objects.

java.sql.SQLException: unable to convert database class found type to client class expected type

SQL State: 22005

Cause: The default mapping from a database type into a Java object produced class found type when class expected type was required by the host expression. This often indicates a failed conversion to the client-side class java.math.BigDecimal. It may also indicate a failed conversion to a non-standard class that is only supported when a particular customization is installed.

Action: Verify that the database type selected has a default mapping assignable to the type of host variable or iterator column fetched into. This may require the use of a different client-side type. Verify that the customization required to support the client-side type, if any, is installed.

java.sql.SQLException: Unable to create CallableStatement for RTStatement

SQL State: 46110

Cause: Execution of this SQL operation requires the use of a JDBC CallableStatement object at runtime. However, such an object was not available from the customization used to execute the operation. This indicates that incompatible customizations may have been installed into your application, or that the operation may require the use of a special customization.

Action: Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: Unable to create PreparedStatement for RTStatement

SQL State: 46110

Cause: Execution of this SQL operation requires the use of a JDBC PreparedStatement object at runtime. However, such an object was not available from the customization used to execute the operation. This indicates that incompatible customizations may have been installed into your application, or that the operation may require the use of a special customization.

Action: Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: unable to load connect properties file: filename

SQL State: 08000

Cause: The connection properties file named filename could not be loaded as a resource file. It is used to establish a database connection. Since it is loaded as an application resource file, it must be packaged with the application classes. This message indicates that the file does not exist in the expected location or is not readable.

Action: Verify that the connection properties file is readable and packaged with the application classes.

java.sql.SQLException: unexpected call to method method name

SQL State: 46130

Cause: The execution of a SQL operation unexpectedly involved a call to method method name. This indicates an operation that does not conform to the SQLJ runtime standard, and may require a special customization to be executed. It may also indicate the use of a non-standard SQLJ translator.

Action: Verify the original SQL operation is valid. Retranslate the source file or install a customization that supports the extended functionality.

java.sql.SQLException: unexpected exception raised by constructor constructor name: exception description

SQL State: 46120

Cause: The construction of a runtime result or output parameter resulted in a runtime exception being thrown by the constructor.

Action: Examine the contents of exception description to determine the cause of the exception.

java.sql.SQLException: unexpected exception raised by method method name: exception description

SQL State: 46120

Cause: The conversion of a host expression to or from a database type involved in a call to method method name, which raised an exception other than a SQLException.

Action: Examine the contents of exception description to determine the cause of the exception.

sqlj.runtime.SQLNullException: cannot fetch null into primitive data type

SQL State: 22002

Cause: Attempted to store a SQL NULL into Java primitive iterator column type, result, OUT parameter, or INOUT parameter.

Action: Use a nullable Java wrapper type instead of the primitive type.


Go to previous page Go to next page
Oracle
Copyright © 1996-2001, Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index