Oracle9i SQLJ Developer's Guide and Reference Release 2 (9.2) Part Number A96655-01 |
|
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.
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 |
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.
Cause: Informs user that SQLJ connects as user user to the database with URL connection.
Cause: SQLJ will preserve analysis information obtained from online checking during this run.
Cause: Informs user that database query was issued.
Cause: Informs user that SQLJ is reusing cached analysis results from previous online checking runs.
Cause: Lists the JDBC drivers that have been registered.
Cause: Analysis information cached from online checking has been retrieved.
Cause: Informs user that SQLJ has converted SQLJ function call syntax to JDBC function call syntax.
Cause: User ignores result returned by a stored function call.
Cause: User tries to retrieve a return value from a stored procedure invocation.
Cause: Only array types can be used as the base operand of array access operator ('[]').
Action: Check the type of the base operand.
Action: Insert the terminating " or '.
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.
Cause: You may not use column names that are only distinguished by case.
Action: Use column aliases to distinguish column names.
Cause: More than one constructor declaration matches the arguments after standard conversions.
Action: Indicate with explicit cast which constructor argument types should be used.
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.
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.
Action: Ensure that you have appropriate permissions and sufficient space for SQLJ output.
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.
Cause: Modes OUT and INOUT require the presence of variables or assignable expressions (such as array locations) in this argument position.
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.
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.
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.
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.
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.
Cause: Array objects can only be indexed using a numeric index.
Action: Correct the type of the index operand.
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.
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.
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.
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.
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.
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.
Cause: An executable SQLJ statement appears where a declaration was expected.
Action: Move the #sql construct to a legal position.
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.
Cause: Boolean operators can only operate with boolean arguments.
Action: Check the types of operands.
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.
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.
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.
Action: Check the name of the JDBC driver class.
Action: Ensure that the type map resource map name is present on the CLASSPATH.
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.
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.
Cause: An error occurred when trying to retrieve a type map for the connection context class context class.
Cause: Two incompatible options were specified at the same time to the profile conversion utility.
Action: Use only one of the specified options.
Cause: Checkers must implement sqlj.framework.checker.SQLChecker
.
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.
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.
Cause: Ensure that the class classname is only defined in one of the source files that you pass to SQLJ.
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.
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.
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.
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.
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.
Cause: The Java and SQL types are not compatible.
Cause: Only numeric values are meaningful in an operation that compares magnitudes.
Action: Check the types of operands.
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.
Cause: The profile in file filename was compiled into class file format by the profile conversion utility.
Action: No further action required.
Cause: Only an integral value can be complemented bitwise.
Action: Check the types of operands.
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.
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.
Cause: No valid Java type could be derived for your connection context expression.
Action: Declare your connection context type with #sql context
ConnectionContext;
Action: The with
-clause attribute attribute is not explicitly part of the SQLJ specification. Check the spelling of your attribute name.
Cause: In your SQLJ context declaration you specified an implements
clause with the interface interface. However, connection contexts do not implement this interface.
Cause: The constructor that was invoked does not exist.
Action: Check the constructor arguments, or add a constructor with the desired arguments.
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.
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.
Cause: Your INTO-list has more elements than the corresponding positional iterator from which you are fetching.
Action: Remove the extra INTO-list elements.
Cause: No valid Java type could be derived for the iterator expression in the FETCH statement.
Cause: The profile was successfully customized.
Action: No further action required.
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.
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.
Cause: Database issued error when parsing a SQL statement against the exemplar schema.
Action: Check the validity of the SQL statement.
Cause: Database issued an error when parsing the SQL statement against the exemplar schema.
Action: Check the validity of the SQL statement.
Cause: The intermediate file filename was removed by the profile conversion utility.
Action: No further action required.
Cause: No procedure or function name with n arguments appears in the database.
Action: Check the name of your stored procedure or function.
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.
Cause: SQLJ could not find a stored function of the desired name name.
Action: Check the name of your stored function.
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.
Cause: SQLJ could not find a stored procedure of the desired name name.
Action: Check the name of your stored procedure.
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.
Cause: An online connection is required to help SQLJ analyze 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, ...).
Cause: The same access modifier appears more than once for the same class, method or member.
Action: Remove the superfluous access modifier.
Cause: The method method was declared more than once.
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.
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.
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.
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 command line rather than from SQLJ.
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.
Cause: The syntax of this statement requires a terminating token token1 which was not found.
Cause: The SELECT statement syntax is incorrect.
Action: Add FROM clause after the INTO clause.
Cause: The the left-hand-side of the CAST assignment must be a SQLJ iterator instance, not an expression of type type.
Cause: The SQLJ CAST statement must be an assignment statement, with the left-hand-side of the assignment being a SQLJ iterator instance.
Cause: A host variable representing an iterator type or a keyword was expected here.
Cause: A host variable representing an iterator type was expected here.
Cause: An unexpected token token was found after the CAST statement.
Cause: No further tokens were expected in this FETCH statement.
Cause: You did not specify a host variable after the CAST keyword.
Cause: No valid Java type could be derived for the host expression.
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.
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.
Cause: This statement should have a list of one or more INTO host expressions.
Cause: Invalid use of the JDBC escape syntax for calling stored procedures.
Cause: The name of a stored function was expected here instead of the token token.
Cause: The name of a stored function or a stored procedure was expected here instead of the token token.
Cause: The name of a stored procedure was expected here instead of the token token.
Cause: The FETCH statement must have a cursor host variable, from which values are to be fetched.
Action: Use proper syntax in the WHERE CURRENT OF clause.
Action: Use proper syntax in the WHERE CURRENT OF clause.
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.
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.
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.
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.
Cause: This class has no access to the field.
Action: Check that the access rights of the field are set correctly.
Cause: Ensure that the class className is defined in file fileName that you pass to SQLJ.
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.
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.
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.
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.
Cause: The OUT or INOUT host expression at position pos must be an assignable expression. Java variables, fields, and array elements are assignable expressions.
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.
Action: Ensure that you do not use identifiers that start with __sJT_
.
Cause: One or more non-standard, non-portable entries on the connection context type map were found and ignored.
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.
Action: Use a boolean value for option (such as true
, false
, yes
, no
, 0
, 1
).
Cause: One or more components of the INTO list do not have a valid Java type.
Cause: No valid Java type could be derived for the iterator in the WHERE CURRENT OF clause.
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.
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.
Cause: A particular syntactic keyword or expression was expected in the FETCH clause.
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).
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.
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.
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.
Cause: Increment and decrement operators can only operate on integer values.
Action: Check the type of the operand.
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.
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).
Cause: Instanceof operator can only operate on objects.
Action: Check the type of the operand.
Action: Notify Oracle of the error message.
Cause: The elements of an INTO-list must be assignable expression. Java variables, fields, and array elements are assignable expressions.
Cause: No INTO... bind list is permitted in the current SQL statement.
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.
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.
Action: Iterator in the FETCH statement must implement sqlj.runtime.FetchableIterator
.
Cause: There is a syntax error in the SQL declaration.
Action: Check the SQL declaration syntax.
Cause: The Java classname must be the name of a valid Java class that is present in the Java environment.
Cause: The type java type is not the name of a valid Java class.
Cause: No valid Java type could be derived for host expression #n.
Cause: No valid Java type could be derived for host expression #n.
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.
Cause: No valid Java type could be derived for host expression name (at position #n).
Cause: No valid Java type could be derived for host expression name (at position #n).
Cause: No valid Java type could be derived for INTO-item #pos: type.
Cause: The option option name had an invalid value.
Action: Correct the option value as needed for problem description.
Cause: The option given by option setting was not recognized by the customizer harness.
Action: Correct or remove the unknown option.
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.
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.
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.).
Cause: The SQL type in entry entry was not given properly, or it has duplicate entries.
Cause: An object cannot be cast to the indicated type.
Action: Check the type of the operand.
Cause: No valid Java type could be derived for INTO-item #pos.
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 (...);
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.
Action: The with
-clause attribute attribute is not explicitly part of the SQLJ specification. Check the spelling of your attribute name.
Action: Specify the implements
-clause: implements sqlj.runtime.ForUpdate
in your iterator declaration.
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.
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.
Cause: According to the context type map type map, the class class must implement the interface type map. This is not the case.
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.
Cause: Instances of Java objects that are read from or written to the database must implement a particular Java interface.
Cause: No valid Java class declaration could be found for javatype.
Cause: The iterator in the WHERE CURRENT OF clause must be declared as implementing the interface sqlj.runtime.ForUpdate
.
Action: For maximum portability to different JDBC drivers, you should avoid this conversion.
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.
Action: Because of the error, the modes for this function or procedure could not be determined. Repeat translation or translate offline if error persists.
Cause: Your JDBC driver erroneously reports multiple return arguments for a stored procedure or function.
Action: Update your JDBC driver.
Cause: Your JDBC driver does not properly report the return argument of a stored function first.
Action: Update your JDBC driver.
Cause: No valid Java type could be derived for the left-hand-side expression of the assignment statement.
Cause: A list-valued option such as "driver" or "context" included an empty list item.
Action: Remove the empty item from the list.
Cause: Conversion from a numeric SQL value to Java may result in a loss of precision.
Cause: SQLJ pre-defines several methods on iterators. You cannot use these names in your own methods.
Cause: This class has no access to the method.
Action: Check that the access rights of the method are set correctly.
Cause: The method does not exist.
Action: Check the method arguments, or add an overloaded method with the desired arguments.
Cause: The FETCH statement has fewer columns on the fetch cursor than required by the INTO bind variable list.
Action: The argument list should be terminated with a ")".
Cause: There was no colon where one was expected.
Action: Add the missing colon.
Cause: There was no comma where one was expected.
Action: Add the missing comma.
Cause: There was no opening curly brace where one was expected.
Action: Add the missing opening curly brace.
Cause: There was no dot operator where one was expected.
Action: Add the missing dot operator.
Action: You must add element to the INTO list.
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.
Cause: There was no opening parenthesis where one was expected.
Action: Add the missing opening parenthesis.
Cause: There was no semicolon where one was expected.
Action: Add the missing semicolon.
Cause: There was no opening square bracket where one was expected.
Action: Add the missing opening square bracket.
Cause: No matching token token was found in the SQL statement.
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.
Cause: Not all modifiers are permitted in a SQLJ class declaration.
Cause: Not all modifiers are permitted in a SQLJ class declaration.
Action: Eliminate superfluous INTO ... bind lists.
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.
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.
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).
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.
Cause: Negation operator can operate only on a boolean operand.
Action: Check the type of the operand.
Cause: SQLJ does not permit a terminating semicolon after a stored procedure or function invocation.
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.
Cause: No JDBC connection URL was given.
Action: Specify a JDBC URL in the -url
option, or in the -user
option.
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.
Cause: Profile customization was requested but no customizer was specified.
Action: Set the profile customizer using the "customizer" or "default-customizer" option.
Cause: This class file was already instrumented with the source locations from the original .sqlj
file.
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.
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.
Cause: No offline analysis can be performed for context.
Cause: No offline analysis can be performed.
Cause: The context will be checked offline, even though online checking was requested.
Cause: Offline checking will be performed, even though online checking was requested.
Cause: SQLJ does not permit additional statements after a stored procedure or function invocation.
Cause: None of the online checkers is capable to check context.
Cause: None of the online checkers is capable to check the default context.
Cause: If a user is specified for the default context, SQLJ will attempt to check online for all contexts.
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.
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.
Cause: Input files to SQLJ must have the extension ".sqlj", ".java", ".ser", or ".jar".
Cause: The name name was used in the implements
clause. However, it does not represent a Java interface.
Cause: The Java file from which the class file was compiled was not generated by the SQLJ translator.
Cause: A stored function or procedure could not be found.
Cause: An option value was specified for the read-only option named option name.
Action: Verify the intended use of the option.
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.
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>().
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.
Action: You are requested to enter a user password and hit <enter>.
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.
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.
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.
Action: Ensure that the name of the SQLJ file name and the public class name match.
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.
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.
Cause: The Oracle customization was installed into the profile being customized.
Action: The profile is ready for use with Oracle. No further action required.
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.
Cause: The left-hand side of a SQLJ assignment statement must be an assignable expression. Java variables, fields, and array elements are assignable expressions.
Cause: The stored function returns a Java type javatype, which does not refer to a valid Java class.
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.
Cause: The Java type type cannot be returned by a SQL statement.
Cause: Use types as per the JDBC specification for maximum portability.
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.
Action: SQL queries that return a value must be assigned to a java.sql.ResultSet
, or to a positional or named iterator object.
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.
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.
Cause: Shift operator can operate only on numeric operands.
Action: Check the types of operands.
Cause: Sign operator can operate only on a numeric operand.
Action: Check the type of the operand.
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.
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).
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).
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).
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).
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).
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.
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.
Action: Either remove INTO ... bind list, or remove assignment to an iterator.
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).
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.
Cause: No valid Java type could be derived for your execution context expression.
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.
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.
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.
Action: Use #sql [<connection context>, <execution context>] { ... }; for specifying both connection and execution contexts.
Cause: You should avoid class names of the form <file>_SJ
<suffix>, which are reserved for SQLJ-internal use.
Cause: Nullability in Java does not reflect nullability in the database.
Cause: The syntax used here is not part of the ISO SQLJ standard.
Action: Use only permitted values in your -warn
option.
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).
Action: Only the -user
, -url
, -password
, -offline
, and -online
options are used with tags. Specify the option as -
option not as -
option@
tag.
Cause: A connection context must implement sqlj.runtime.ConnectionContext
.
Cause: An execution context must be an instance of class sqlj.runtime.ExecutionContext
.
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.
Cause: The Java type is supported as an OUT argument but not as an IN argument by your JDBC driver.
Cause: The Java type is supported as an IN argument but not as an OUT argument by your JDBC driver.
Action: Use types as per the JDBC specification for maximum portability.
Cause: No valid Java class declaration could be found for type.
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.
Action: Use types as per the JDBC specification for maximum portability.
Action: Use types as per the JDBC specification for maximum portability.
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.
Cause: A void type cannot be cast to any actual type.
Action: Correct the type of the operand, or remove the cast operation altogether.
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.
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.
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 Java VM 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>.
Cause: The resource name resource coincides with an existing class name. This can cause problems when you run your program.
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.
Cause: The database issued an error message when checking a SQL query against the exemplar schema.
Action: Verify whether the SQL query is correct.
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.
Cause: The database issued an error message when checking a SQL statement against the exemplar schema.
Action: Verify whether the SQL statement is correct.
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.
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.
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.
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 type map.
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.
Action: Ensure that SQLJ has the appropriate permissions to create the file file.
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.
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.
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.
Action: Ensure that file filename exists.
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.
Cause: Class class does not have a public
default constructor.
Cause: Class class does not have a public
default constructor.
Cause: SQLJ could not instrument the class file 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.
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.
Cause: The Java class class could not be found.
Cause: The Java class class could not be found.
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.
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.
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.
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.
Action: Ensure that you can create a temporary file filename, and that the directory is writable.
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.
Cause: SQLJ failed in establishing a connection for online checking.
Action: Ensure that the file filename exists, and that you have read permissions on it.
Cause: An error occurred when reading a user password.
Action: You specified a property file in the -props=property file option. Ensure that this file exists and is readable.
Action: Ensure that SQLJ can create and subsequently read a temporary file file.
Cause: SQLJ was unable to remove temporary files that it created during translation.
Action: Check the default permissions for newly created files.
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.
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.
Action: Ensure that new filename is writable.
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.
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.
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.
Action: Ensure that SQLJ can create and subsequently read a temporary file file.
Action: Ensure that SQLJ can write to a temporary file file.
Cause: There was no closing curly brace where one was expected.
Action: Add the missing closing curly brace.
Cause: There was no closing parenthesis where one was expected.
Action: Add the missing closing parenthesis.
Cause: There was no closing square bracket where one was expected.
Action: Add the missing closing square bracket.
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.
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.
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.
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.
Action: An unexpected error occurred during SQLJ translation. Contact Oracle if this error persists.
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.
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.
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.
Cause: The identifier has not been defined.
Action: Check the identifier for typing errors, and/or make sure that it has been defined.
Action: Ensure that you are using a valid SQLJ option. Run sqlj -help-long
to obtain a list of supported options.
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.
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.
Cause: An unknown option was given to the profile conversion utility.
Action: Verify that the option is spelled correctly.
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.
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.
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.
Action: Ensure that the encoding specified in the -encoding
option is supported by your Java VM.
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.
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.
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.
Cause: The source file ended in a comment before the class declaration was completed.
Action: Check the source file for a missing comment delimiter.
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.
Action: This iterator with
-clause attribute requires a boolean value. Specify one of: attribute=true
, or attribute=false
.
Action: Declare the updateColumns
attribute in your iterators with
-clause as follows: updateColumns="col1,col2,col3"
where the column names represent the updatable columns.
Action: To set sensitivity
, specify one of: sensitivity=SENSITIVE
, sensitivity=ASENSITIVE
, or sensitivity=INSENSITIVE
on the with
-clause of your iterator declaration.
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.
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.
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.
Cause: In order to perform Oracle-specific checking, an Oracle JDBC driver is required.
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.
Cause: This version of SQLJ does not recognize the database you are connecting to.
Action: Connect to an Oracle7 or Oracle8 database.
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.
Cause: This version of SQLJ does not recognize the database you are connecting to.
Action: Connect to an Oracle7 or Oracle8 database
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
SQL State: 46000
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.
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.
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.
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.
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.
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.
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.
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.
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.
|
Copyright © 1999, 2002 Oracle Corporation. All Rights Reserved. |
|