org.jooq.exception.SQLStateSubclass Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of payment-retries-plugin Show documentation
Show all versions of payment-retries-plugin Show documentation
Kill Bill Payment Retries plugin
The newest version!
/*
* Copyright (c) 2009-2016, Data Geekery GmbH (http://www.datageekery.com)
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Other licenses:
* -----------------------------------------------------------------------------
* Commercial licenses for this work are available. These replace the above
* ASL 2.0 and offer limited warranties, support, maintenance, and commercial
* database integrations.
*
* For more information, please visit: http://www.jooq.org/licenses
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package org.jooq.exception;
import static org.jooq.exception.SQLStateClass.C00_SUCCESSFUL_COMPLETION;
import static org.jooq.exception.SQLStateClass.C01_WARNING;
import static org.jooq.exception.SQLStateClass.C02_NO_DATA;
import static org.jooq.exception.SQLStateClass.C07_DYNAMIC_SQL_ERROR;
import static org.jooq.exception.SQLStateClass.C08_CONNECTION_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C09_TRIGGERED_ACTION_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C0A_FEATURE_NOT_SUPPORTED;
import static org.jooq.exception.SQLStateClass.C0D_INVALID_TARGET_TYPE_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C0E_INVALID_SCHEMA_NAME_LIST_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C0F_LOCATOR_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C0L_INVALID_GRANTOR;
import static org.jooq.exception.SQLStateClass.C0M_INVALID_SQL_INVOKED_PROCEDURE_REFERENCE;
import static org.jooq.exception.SQLStateClass.C0P_INVALID_ROLE_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C0S_INVALID_TRANSFORM_GROUP_NAME_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C0T_TARGET_TABLE_DISAGREES_WITH_CURSOR_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C0U_ATTEMPT_TO_ASSIGN_TO_NON_UPDATABLE_COLUMN;
import static org.jooq.exception.SQLStateClass.C0V_ATTEMPT_TO_ASSIGN_TO_ORDERING_COLUMN;
import static org.jooq.exception.SQLStateClass.C0W_PROHIBITED_STATEMENT_ENCOUNTERED_DURING_TRIGGER_EXECUTION;
import static org.jooq.exception.SQLStateClass.C0Z_DIAGNOSTICS_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C21_CARDINALITY_VIOLATION;
import static org.jooq.exception.SQLStateClass.C22_DATA_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C23_INTEGRITY_CONSTRAINT_VIOLATION;
import static org.jooq.exception.SQLStateClass.C24_INVALID_CURSOR_STATE;
import static org.jooq.exception.SQLStateClass.C25_INVALID_TRANSACTION_STATE;
import static org.jooq.exception.SQLStateClass.C26_INVALID_SQL_STATEMENT_NAME;
import static org.jooq.exception.SQLStateClass.C27_TRIGGERED_DATA_CHANGE_VIOLATION;
import static org.jooq.exception.SQLStateClass.C28_INVALID_AUTHORIZATION_SPECIFICATION;
import static org.jooq.exception.SQLStateClass.C2B_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST;
import static org.jooq.exception.SQLStateClass.C2C_INVALID_CHARACTER_SET_NAME;
import static org.jooq.exception.SQLStateClass.C2D_INVALID_TRANSACTION_TERMINATION;
import static org.jooq.exception.SQLStateClass.C2E_INVALID_CONNECTION_NAME;
import static org.jooq.exception.SQLStateClass.C2F_SQL_ROUTINE_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C2H_INVALID_COLLATION_NAME;
import static org.jooq.exception.SQLStateClass.C30_INVALID_SQL_STATEMENT_IDENTIFIER;
import static org.jooq.exception.SQLStateClass.C33_INVALID_SQL_DESCRIPTOR_NAME;
import static org.jooq.exception.SQLStateClass.C34_INVALID_CURSOR_NAME;
import static org.jooq.exception.SQLStateClass.C35_INVALID_CONDITION_NUMBER;
import static org.jooq.exception.SQLStateClass.C36_CURSOR_SENSITIVITY_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C38_EXTERNAL_ROUTINE_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C39_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C3B_SAVEPOINT_EXCEPTION;
import static org.jooq.exception.SQLStateClass.C3C_AMBIGUOUS_CURSOR_NAME;
import static org.jooq.exception.SQLStateClass.C3D_INVALID_CATALOG_NAME;
import static org.jooq.exception.SQLStateClass.C3F_INVALID_SCHEMA_NAME;
import static org.jooq.exception.SQLStateClass.C40_TRANSACTION_ROLLBACK;
import static org.jooq.exception.SQLStateClass.C42_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION;
import static org.jooq.exception.SQLStateClass.CHZ_REMOTE_DATABASE_ACCESS;
import java.util.HashMap;
import java.util.Map;
/**
* The subclass of the SQL state class as specified by the SQL standard, or by individual
* vendors.
*
*
* Class Description Subclass Description
* 00 Successful completion 000 No subclass
* 01 Warning 000 No subclass
* 01 Warning 001 Cursor operation conflict
* 01 Warning 002 Disconnect error
* 01 Warning 003 Null value eliminated in set function
* 01 Warning 004 String data, right truncation
* 01 Warning 005 Insufficient item descriptor areas
* 01 Warning 006 Privilege not revoked
* 01 Warning 007 Privilege not granted
* 01 Warning 009 Search condition too long for information schema
* 01 Warning 00A Query expression too long for information schema
* 01 Warning 00B Default value too long for information schema
* 01 Warning 00C Result sets returned
* 01 Warning 00D Additional result sets returned
* 01 Warning 00E Attempt to return too many result sets
* 01 Warning 00F Statement too long for information schema
* 01 Warning 012 Invalid number of conditions
* 01 Warning 02F Array data, right truncation
* 02 No data 000 No subclass
* 02 No data 001 No additional result sets returned
* 07 Dynamic SQL Error 000 No subclass
* 07 Dynamic SQL Error 001 Using clause does not match dynamic parameter specifications
* 07 Dynamic SQL Error 002 Using clause does not match target specifications
* 07 Dynamic SQL Error 003 Cursor specification cannot be executed
* 07 Dynamic SQL Error 004 Using clause required for dynamic parameters
* 07 Dynamic SQL Error 005 Prepared statement not a cursor specification
* 07 Dynamic SQL Error 006 Restricted data type attribute violation
* 07 Dynamic SQL Error 007 Using clause required for result fields
* 07 Dynamic SQL Error 008 Invalid descriptor count
* 07 Dynamic SQL Error 009 Invalid descriptor index
* 07 Dynamic SQL Error 00B Data type transform function violation
* 07 Dynamic SQL Error 00C Undefined DATA value
* 07 Dynamic SQL Error 00D Invalid DATA target
* 07 Dynamic SQL Error 00E Invalid LEVEL value
* 07 Dynamic SQL Error 00F Invalid DATETIME_INTERVAL_CODE
* 08 Connection exception 000 No subclass
* 08 Connection exception 001 SQL-client unable to establish SQL-connection
* 08 Connection exception 002 Connection name in use
* 08 Connection exception 003 Connection does not exist
* 08 Connection exception 004 SQL-server rejected establishment of SQL-connection
* 08 Connection exception 006 Connection failure
* 08 Connection exception 007 Transaction resolution unknown
* 09 Triggered action exception 000 No subclass
* 0A Feature not supported 000 No subclass
* 0A Feature not supported 001 Multiple server transactions
* 0D Invalid target type specification 000 No subclass
* 0E Invalid schema name list specification 000 No subclass
* 0F Locator exception 000 No subclass
* 0F Locator exception 001 Invalid specification
* 0L Invalid grantor 000 No subclass
* 0M Invalid SQL-invoked procedure reference 000 No subclass
* 0P Invalid role specification 000 No subclass
* 0S Invalid transform group name specification 000 No subclass
* 0T Target table disagrees with cursor specification 000 No subclass
* 0U Attempt to assign to non-updatable column 000 No subclass
* 0V Attempt to assign to ordering column 000 No subclass
* 0W Prohibited statement encountered during trigger execution 000 No subclass
* 0W Prohibited statement encountered during trigger execution 001 Modify table modified by data change delta table
* 0Z Diagnostics exception 000 No subclass
* 0Z Diagnostics exception 001 Maximum number of stacked diagnostics areas exceeded
* 21 Cardinality violation 000 No subclass
* 22 Data exception 000 No subclass
* 22 Data exception 001 String data, right truncation
* 22 Data exception 002 Null value, no indicator parameter
* 22 Data exception 003 Numeric value out of range
* 22 Data exception 004 Null value not allowed
* 22 Data exception 005 Error in assignment
* 22 Data exception 006 Invalid interval format
* 22 Data exception 007 Invalid datetime format
* 22 Data exception 008 Datetime field overflow
* 22 Data exception 009 Invalid time zone displacement value
* 22 Data exception 00B Escape character conflict
* 22 Data exception 00C Invalid use of escape character
* 22 Data exception 00D Invalid escape octet
* 22 Data exception 00E Null value in array target
* 22 Data exception 00F Zero-length character string
* 22 Data exception 00G Most specific type mismatch
* 22 Data exception 00H Sequence generator limit exceeded
* 22 Data exception 00P Interval value out of range
* 22 Data exception 00Q Multiset value overflow
* 22 Data exception 010 Invalid indicator parameter value
* 22 Data exception 011 Substring error
* 22 Data exception 012 Division by zero
* 22 Data exception 013 Invalid preceding or following size in window function
* 22 Data exception 014 Invalid argument for NTILE function
* 22 Data exception 015 Interval field overflow
* 22 Data exception 016 Invalid argument for NTH_VALUE function
* 22 Data exception 018 Invalid character value for cast
* 22 Data exception 019 Invalid escape character
* 22 Data exception 01B Invalid regular expression
* 22 Data exception 01C Null row not permitted in table
* 22 Data exception 01E Invalid argument for natural logarithm
* 22 Data exception 01F Invalid argument for power function
* 22 Data exception 01G Invalid argument for width bucket function
* 22 Data exception 01H Invalid row version
* 22 Data exception 01S Invalid XQuery regular expression
* 22 Data exception 01T Invalid XQuery option flag
* 22 Data exception 01U Attempt to replace a zero-length string
* 22 Data exception 01V Invalid XQuery replacement string
* 22 Data exception 01W Invalid row count in fetch first clause
* 22 Data exception 01X Invalid row count in result offset clause
* 22 Data exception 020 Invalid period value
* 22 Data exception 021 Character not in repertoire
* 22 Data exception 022 Indicator overflow
* 22 Data exception 023 Invalid parameter value
* 22 Data exception 024 Unterminated C string
* 22 Data exception 025 Invalid escape sequence
* 22 Data exception 026 String data, length mismatch
* 22 Data exception 027 Trim error
* 22 Data exception 029 Noncharacter in UCS string
* 22 Data exception 02D Null value substituted for mutator subject parameter
* 22 Data exception 02E Array element error
* 22 Data exception 02F Array data, right truncation
* 22 Data exception 02G Invalid repeat argument in sample clause
* 22 Data exception 02H Invalid sample size
* 23 Integrity constraint violation 000 No subclass
* 23 Integrity constraint violation 001 Restrict violation
* 24 Invalid cursor state 000 No subclass
* 25 Invalid transaction state 000 No subclass
* 25 Invalid transaction state 001 Active SQL-transaction
* 25 Invalid transaction state 002 Branch transaction already active
* 25 Invalid transaction state 003 Inappropriate access mode for branch transaction
* 25 Invalid transaction state 004 Inappropriate isolation level for branch transaction
* 25 Invalid transaction state 005 No active SQL-transaction for branch transaction
* 25 Invalid transaction state 006 Read-only SQL-transaction
* 25 Invalid transaction state 007 Schema and data statement mixing not supported
* 25 Invalid transaction state 008 Held cursor requires same isolation level
* 26 Invalid SQL statement name 000 No subclass
* 27 Triggered data change violation 000 No subclass
* 27 Triggered data change violation 001 Modify table modified by data change delta table
* 28 Invalid authorization specification 000 No subclass
* 2B Dependent privilege descriptors still exist 000 No subclass
* 2C Invalid character set name 000 No subclass
* 2C Invalid character set name 001 Cannot drop SQL-session default character set
* 2D Invalid transaction termination 000 No subclass
* 2E Invalid connection name 000 No subclass
* 2F SQL routine exception 000 No subclass
* 2F SQL routine exception 002 Modifying SQL-data not permitted
* 2F SQL routine exception 003 Prohibited SQL-statement attempted
* 2F SQL routine exception 004 Reading SQL-data not permitted
* 2F SQL routine exception 005 Function executed no return statement
* 2H Invalid collation name 000 No subclass
* 30 Invalid SQL statement identifier 000 No subclass
* 33 Invalid SQL descriptor name 000 No subclass
* 34 Invalid cursor name 000 No subclass
* 35 Invalid condition number 000 No subclass
* 36 Cursor sensitivity exception 000 No subclass
* 36 Cursor sensitivity exception 001 request rejected
* 36 Cursor sensitivity exception 002 request failed
* 38 External routine exception 000 No subclass
* 38 External routine exception 001 Containing SQL not permitted
* 38 External routine exception 002 Modifying SQL-data not permitted
* 38 External routine exception 003 Prohibited SQL-statement attempted
* 38 External routine exception 004 Reading SQL-data not permitted
* 39 External routine invocation exception 000 No subclass
* 39 External routine invocation exception 004 Null value not allowed
* 3B Savepoint exception 000 No subclass
* 3B Savepoint exception 001 Invalid specification
* 3B Savepoint exception 002 Too many
* 3C Ambiguous cursor name 000 No subclass
* 3D Invalid catalog name 000 No subclass
* 3F Invalid schema name 000 No subclass
* 40 Transaction rollback 000 No subclass
* 40 Transaction rollback 001 Serialization failure
* 40 Transaction rollback 002 Integrity constraint violation
* 40 Transaction rollback 003 Statement completion unknown
* 40 Transaction rollback 004 Triggered action exception
* 42 Syntax error or access rule violation 000 No subclass
* 44 With check option violation 000 No subclass
* HZ Remote database access 000 No subclass
*
*
* @author Lukas Eder
*/
public enum SQLStateSubclass {
C00000_NO_SUBCLASS(C00_SUCCESSFUL_COMPLETION, "000"),
C01000_NO_SUBCLASS(C01_WARNING, "000"),
C01001_CURSOR_OPERATION_CONFLICT(C01_WARNING, "001"),
C01002_DISCONNECT_ERROR(C01_WARNING, "002"),
C01003_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION(C01_WARNING, "003"),
C01004_STRING_DATA_RIGHT_TRUNCATION(C01_WARNING, "004"),
C01005_INSUFFICIENT_ITEM_DESCRIPTOR_AREAS(C01_WARNING, "005"),
C01006_PRIVILEGE_NOT_REVOKED(C01_WARNING, "006"),
C01007_PRIVILEGE_NOT_GRANTED(C01_WARNING, "007"),
C01009_SEARCH_CONDITION_TOO_LONG_FOR_INFORMATION_SCHEMA(C01_WARNING, "009"),
C0100A_QUERY_EXPRESSION_TOO_LONG_FOR_INFORMATION_SCHEMA(C01_WARNING, "00A"),
C0100B_DEFAULT_VALUE_TOO_LONG_FOR_INFORMATION_SCHEMA(C01_WARNING, "00B"),
C0100C_RESULT_SETS_RETURNED(C01_WARNING, "00C"),
C0100D_ADDITIONAL_RESULT_SETS_RETURNED(C01_WARNING, "00D"),
C0100E_ATTEMPT_TO_RETURN_TOO_MANY_RESULT_SETS(C01_WARNING, "00E"),
C0100F_STATEMENT_TOO_LONG_FOR_INFORMATION_SCHEMA(C01_WARNING, "00F"),
C01012_INVALID_NUMBER_OF_CONDITIONS(C01_WARNING, "012"),
C0102F_ARRAY_DATA_RIGHT_TRUNCATION(C01_WARNING, "02F"),
C02000_NO_SUBCLASS(C02_NO_DATA, "000"),
C02001_NO_ADDITIONAL_RESULT_SETS_RETURNED(C02_NO_DATA, "001"),
C07000_NO_SUBCLASS(C07_DYNAMIC_SQL_ERROR, "000"),
C07001_USING_CLAUSE_DOES_NOT_MATCH_DYNAMIC_PARAMETER_SPECIFICATIONS(C07_DYNAMIC_SQL_ERROR, "001"),
C07002_USING_CLAUSE_DOES_NOT_MATCH_TARGET_SPECIFICATIONS(C07_DYNAMIC_SQL_ERROR, "002"),
C07003_CURSOR_SPECIFICATION_CANNOT_BE_EXECUTED(C07_DYNAMIC_SQL_ERROR, "003"),
C07004_USING_CLAUSE_REQUIRED_FOR_DYNAMIC_PARAMETERS(C07_DYNAMIC_SQL_ERROR, "004"),
C07005_PREPARED_STATEMENT_NOT_A_CURSOR_SPECIFICATION(C07_DYNAMIC_SQL_ERROR, "005"),
C07006_RESTRICTED_DATA_TYPE_ATTRIBUTE_VIOLATION(C07_DYNAMIC_SQL_ERROR, "006"),
C07007_USING_CLAUSE_REQUIRED_FOR_RESULT_FIELDS(C07_DYNAMIC_SQL_ERROR, "007"),
C07008_INVALID_DESCRIPTOR_COUNT(C07_DYNAMIC_SQL_ERROR, "008"),
C07009_INVALID_DESCRIPTOR_INDEX(C07_DYNAMIC_SQL_ERROR, "009"),
C0700B_DATA_TYPE_TRANSFORM_FUNCTION_VIOLATION(C07_DYNAMIC_SQL_ERROR, "00B"),
C0700C_UNDEFINED_DATA_VALUE(C07_DYNAMIC_SQL_ERROR, "00C"),
C0700D_INVALID_DATA_TARGET(C07_DYNAMIC_SQL_ERROR, "00D"),
C0700E_INVALID_LEVEL_VALUE(C07_DYNAMIC_SQL_ERROR, "00E"),
C0700F_INVALID_DATETIME_INTERVAL_CODE(C07_DYNAMIC_SQL_ERROR, "00F"),
C08000_NO_SUBCLASS(C08_CONNECTION_EXCEPTION, "000"),
C08001_SQL_CLIENT_UNABLE_TO_ESTABLISH_SQL_CONNECTION(C08_CONNECTION_EXCEPTION, "001"),
C08002_CONNECTION_NAME_IN_USE(C08_CONNECTION_EXCEPTION, "002"),
C08003_CONNECTION_DOES_NOT_EXIST(C08_CONNECTION_EXCEPTION, "003"),
C08004_SQL_SERVER_REJECTED_ESTABLISHMENT_OF_SQL_CONNECTION(C08_CONNECTION_EXCEPTION, "004"),
C08006_CONNECTION_FAILURE(C08_CONNECTION_EXCEPTION, "006"),
C08007_TRANSACTION_RESOLUTION_UNKNOWN(C08_CONNECTION_EXCEPTION, "007"),
C09000_NO_SUBCLASS(C09_TRIGGERED_ACTION_EXCEPTION, "000"),
C0A000_NO_SUBCLASS(C0A_FEATURE_NOT_SUPPORTED, "000"),
C0A001_MULTIPLE_SERVER_TRANSACTIONS(C0A_FEATURE_NOT_SUPPORTED, "001"),
C0D000_NO_SUBCLASS(C0D_INVALID_TARGET_TYPE_SPECIFICATION, "000"),
C0E000_NO_SUBCLASS(C0E_INVALID_SCHEMA_NAME_LIST_SPECIFICATION, "000"),
C0F000_NO_SUBCLASS(C0F_LOCATOR_EXCEPTION, "000"),
C0F001_INVALID_SPECIFICATION(C0F_LOCATOR_EXCEPTION, "001"),
C0L000_NO_SUBCLASS(C0L_INVALID_GRANTOR, "000"),
C0M000_NO_SUBCLASS(C0M_INVALID_SQL_INVOKED_PROCEDURE_REFERENCE, "000"),
C0P000_NO_SUBCLASS(C0P_INVALID_ROLE_SPECIFICATION, "000"),
C0S000_NO_SUBCLASS(C0S_INVALID_TRANSFORM_GROUP_NAME_SPECIFICATION, "000"),
C0T000_NO_SUBCLASS(C0T_TARGET_TABLE_DISAGREES_WITH_CURSOR_SPECIFICATION, "000"),
C0U000_NO_SUBCLASS(C0U_ATTEMPT_TO_ASSIGN_TO_NON_UPDATABLE_COLUMN, "000"),
C0V000_NO_SUBCLASS(C0V_ATTEMPT_TO_ASSIGN_TO_ORDERING_COLUMN, "000"),
C0W000_NO_SUBCLASS(C0W_PROHIBITED_STATEMENT_ENCOUNTERED_DURING_TRIGGER_EXECUTION, "000"),
C0W001_MODIFY_TABLE_MODIFIED_BY_DATA_CHANGE_DELTA_TABLE(C0W_PROHIBITED_STATEMENT_ENCOUNTERED_DURING_TRIGGER_EXECUTION, "001"),
C0Z000_NO_SUBCLASS(C0Z_DIAGNOSTICS_EXCEPTION, "000"),
C0Z001_MAXIMUM_NUMBER_OF_STACKED_DIAGNOSTICS_AREAS_EXCEEDED(C0Z_DIAGNOSTICS_EXCEPTION, "001"),
C21000_NO_SUBCLASS(C21_CARDINALITY_VIOLATION, "000"),
C22000_NO_SUBCLASS(C22_DATA_EXCEPTION, "000"),
C22001_STRING_DATA_RIGHT_TRUNCATION(C22_DATA_EXCEPTION, "001"),
C22002_NULL_VALUE_NO_INDICATOR_PARAMETER(C22_DATA_EXCEPTION, "002"),
C22003_NUMERIC_VALUE_OUT_OF_RANGE(C22_DATA_EXCEPTION, "003"),
C22004_NULL_VALUE_NOT_ALLOWED(C22_DATA_EXCEPTION, "004"),
C22005_ERROR_IN_ASSIGNMENT(C22_DATA_EXCEPTION, "005"),
C22006_INVALID_INTERVAL_FORMAT(C22_DATA_EXCEPTION, "006"),
C22007_INVALID_DATETIME_FORMAT(C22_DATA_EXCEPTION, "007"),
C22008_DATETIME_FIELD_OVERFLOW(C22_DATA_EXCEPTION, "008"),
C22009_INVALID_TIME_ZONE_DISPLACEMENT_VALUE(C22_DATA_EXCEPTION, "009"),
C2200B_ESCAPE_CHARACTER_CONFLICT(C22_DATA_EXCEPTION, "00B"),
C2200C_INVALID_USE_OF_ESCAPE_CHARACTER(C22_DATA_EXCEPTION, "00C"),
C2200D_INVALID_ESCAPE_OCTET(C22_DATA_EXCEPTION, "00D"),
C2200E_NULL_VALUE_IN_ARRAY_TARGET(C22_DATA_EXCEPTION, "00E"),
C2200F_ZERO_LENGTH_CHARACTER_STRING(C22_DATA_EXCEPTION, "00F"),
C2200G_MOST_SPECIFIC_TYPE_MISMATCH(C22_DATA_EXCEPTION, "00G"),
C2200H_SEQUENCE_GENERATOR_LIMIT_EXCEEDED(C22_DATA_EXCEPTION, "00H"),
C2200P_INTERVAL_VALUE_OUT_OF_RANGE(C22_DATA_EXCEPTION, "00P"),
C2200Q_MULTISET_VALUE_OVERFLOW(C22_DATA_EXCEPTION, "00Q"),
C22010_INVALID_INDICATOR_PARAMETER_VALUE(C22_DATA_EXCEPTION, "010"),
C22011_SUBSTRING_ERROR(C22_DATA_EXCEPTION, "011"),
C22012_DIVISION_BY_ZERO(C22_DATA_EXCEPTION, "012"),
C22013_INVALID_PRECEDING_OR_FOLLOWING_SIZE_IN_WINDOW_FUNCTION(C22_DATA_EXCEPTION, "013"),
C22014_INVALID_ARGUMENT_FOR_NTILE_FUNCTION(C22_DATA_EXCEPTION, "014"),
C22015_INTERVAL_FIELD_OVERFLOW(C22_DATA_EXCEPTION, "015"),
C22016_INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION(C22_DATA_EXCEPTION, "016"),
C22018_INVALID_CHARACTER_VALUE_FOR_CAST(C22_DATA_EXCEPTION, "018"),
C22019_INVALID_ESCAPE_CHARACTER(C22_DATA_EXCEPTION, "019"),
C2201B_INVALID_REGULAR_EXPRESSION(C22_DATA_EXCEPTION, "01B"),
C2201C_NULL_ROW_NOT_PERMITTED_IN_TABLE(C22_DATA_EXCEPTION, "01C"),
C2201E_INVALID_ARGUMENT_FOR_NATURAL_LOGARITHM(C22_DATA_EXCEPTION, "01E"),
C2201F_INVALID_ARGUMENT_FOR_POWER_FUNCTION(C22_DATA_EXCEPTION, "01F"),
C2201G_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION(C22_DATA_EXCEPTION, "01G"),
C2201H_INVALID_ROW_VERSION(C22_DATA_EXCEPTION, "01H"),
C2201S_INVALID_XQUERY_REGULAR_EXPRESSION(C22_DATA_EXCEPTION, "01S"),
C2201T_INVALID_XQUERY_OPTION_FLAG(C22_DATA_EXCEPTION, "01T"),
C2201U_ATTEMPT_TO_REPLACE_A_ZERO_LENGTH_STRING(C22_DATA_EXCEPTION, "01U"),
C2201V_INVALID_XQUERY_REPLACEMENT_STRING(C22_DATA_EXCEPTION, "01V"),
C2201W_INVALID_ROW_COUNT_IN_FETCH_FIRST_CLAUSE(C22_DATA_EXCEPTION, "01W"),
C2201X_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE(C22_DATA_EXCEPTION, "01X"),
C22020_INVALID_PERIOD_VALUE(C22_DATA_EXCEPTION, "020"),
C22021_CHARACTER_NOT_IN_REPERTOIRE(C22_DATA_EXCEPTION, "021"),
C22022_INDICATOR_OVERFLOW(C22_DATA_EXCEPTION, "022"),
C22023_INVALID_PARAMETER_VALUE(C22_DATA_EXCEPTION, "023"),
C22024_UNTERMINATED_C_STRING(C22_DATA_EXCEPTION, "024"),
C22025_INVALID_ESCAPE_SEQUENCE(C22_DATA_EXCEPTION, "025"),
C22026_STRING_DATA_LENGTH_MISMATCH(C22_DATA_EXCEPTION, "026"),
C22027_TRIM_ERROR(C22_DATA_EXCEPTION, "027"),
C22029_NONCHARACTER_IN_UCS_STRING(C22_DATA_EXCEPTION, "029"),
C2202D_NULL_VALUE_SUBSTITUTED_FOR_MUTATOR_SUBJECT_PARAMETER(C22_DATA_EXCEPTION, "02D"),
C2202E_ARRAY_ELEMENT_ERROR(C22_DATA_EXCEPTION, "02E"),
C2202F_ARRAY_DATA_RIGHT_TRUNCATION(C22_DATA_EXCEPTION, "02F"),
C2202G_INVALID_REPEAT_ARGUMENT_IN_SAMPLE_CLAUSE(C22_DATA_EXCEPTION, "02G"),
C2202H_INVALID_SAMPLE_SIZE(C22_DATA_EXCEPTION, "02H"),
C23000_NO_SUBCLASS(C23_INTEGRITY_CONSTRAINT_VIOLATION, "000"),
C23001_RESTRICT_VIOLATION(C23_INTEGRITY_CONSTRAINT_VIOLATION, "001"),
C24000_NO_SUBCLASS(C24_INVALID_CURSOR_STATE, "000"),
C25000_NO_SUBCLASS(C25_INVALID_TRANSACTION_STATE, "000"),
C25001_ACTIVE_SQL_TRANSACTION(C25_INVALID_TRANSACTION_STATE, "001"),
C25002_BRANCH_TRANSACTION_ALREADY_ACTIVE(C25_INVALID_TRANSACTION_STATE, "002"),
C25003_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION(C25_INVALID_TRANSACTION_STATE, "003"),
C25004_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION(C25_INVALID_TRANSACTION_STATE, "004"),
C25005_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION(C25_INVALID_TRANSACTION_STATE, "005"),
C25006_READ_ONLY_SQL_TRANSACTION(C25_INVALID_TRANSACTION_STATE, "006"),
C25007_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED(C25_INVALID_TRANSACTION_STATE, "007"),
C25008_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL(C25_INVALID_TRANSACTION_STATE, "008"),
C26000_NO_SUBCLASS(C26_INVALID_SQL_STATEMENT_NAME, "000"),
C27000_NO_SUBCLASS(C27_TRIGGERED_DATA_CHANGE_VIOLATION, "000"),
C27001_MODIFY_TABLE_MODIFIED_BY_DATA_CHANGE_DELTA_TABLE(C27_TRIGGERED_DATA_CHANGE_VIOLATION, "001"),
C28000_NO_SUBCLASS(C28_INVALID_AUTHORIZATION_SPECIFICATION, "000"),
C2B000_NO_SUBCLASS(C2B_DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST, "000"),
C2C000_NO_SUBCLASS(C2C_INVALID_CHARACTER_SET_NAME, "000"),
C2C001_CANNOT_DROP_SQL_SESSION_DEFAULT_CHARACTER_SET(C2C_INVALID_CHARACTER_SET_NAME, "001"),
C2D000_NO_SUBCLASS(C2D_INVALID_TRANSACTION_TERMINATION, "000"),
C2E000_NO_SUBCLASS(C2E_INVALID_CONNECTION_NAME, "000"),
C2F000_NO_SUBCLASS(C2F_SQL_ROUTINE_EXCEPTION, "000"),
C2F002_MODIFYING_SQL_DATA_NOT_PERMITTED(C2F_SQL_ROUTINE_EXCEPTION, "002"),
C2F003_PROHIBITED_SQL_STATEMENT_ATTEMPTED(C2F_SQL_ROUTINE_EXCEPTION, "003"),
C2F004_READING_SQL_DATA_NOT_PERMITTED(C2F_SQL_ROUTINE_EXCEPTION, "004"),
C2F005_FUNCTION_EXECUTED_NO_RETURN_STATEMENT(C2F_SQL_ROUTINE_EXCEPTION, "005"),
C2H000_NO_SUBCLASS(C2H_INVALID_COLLATION_NAME, "000"),
C30000_NO_SUBCLASS(C30_INVALID_SQL_STATEMENT_IDENTIFIER, "000"),
C33000_NO_SUBCLASS(C33_INVALID_SQL_DESCRIPTOR_NAME, "000"),
C34000_NO_SUBCLASS(C34_INVALID_CURSOR_NAME, "000"),
C35000_NO_SUBCLASS(C35_INVALID_CONDITION_NUMBER, "000"),
C36000_NO_SUBCLASS(C36_CURSOR_SENSITIVITY_EXCEPTION, "000"),
C36001_REQUEST_REJECTED(C36_CURSOR_SENSITIVITY_EXCEPTION, "001"),
C36002_REQUEST_FAILED(C36_CURSOR_SENSITIVITY_EXCEPTION, "002"),
C38000_NO_SUBCLASS(C38_EXTERNAL_ROUTINE_EXCEPTION, "000"),
C38001_CONTAINING_SQL_NOT_PERMITTED(C38_EXTERNAL_ROUTINE_EXCEPTION, "001"),
C38002_MODIFYING_SQL_DATA_NOT_PERMITTED(C38_EXTERNAL_ROUTINE_EXCEPTION, "002"),
C38003_PROHIBITED_SQL_STATEMENT_ATTEMPTED(C38_EXTERNAL_ROUTINE_EXCEPTION, "003"),
C38004_READING_SQL_DATA_NOT_PERMITTED(C38_EXTERNAL_ROUTINE_EXCEPTION, "004"),
C39000_NO_SUBCLASS(C39_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION, "000"),
C39004_NULL_VALUE_NOT_ALLOWED(C39_EXTERNAL_ROUTINE_INVOCATION_EXCEPTION, "004"),
C3B000_NO_SUBCLASS(C3B_SAVEPOINT_EXCEPTION, "000"),
C3B001_INVALID_SPECIFICATION(C3B_SAVEPOINT_EXCEPTION, "001"),
C3B002_TOO_MANY(C3B_SAVEPOINT_EXCEPTION, "002"),
C3C000_NO_SUBCLASS(C3C_AMBIGUOUS_CURSOR_NAME, "000"),
C3D000_NO_SUBCLASS(C3D_INVALID_CATALOG_NAME, "000"),
C3F000_NO_SUBCLASS(C3F_INVALID_SCHEMA_NAME, "000"),
C40000_NO_SUBCLASS(C40_TRANSACTION_ROLLBACK, "000"),
C40001_SERIALIZATION_FAILURE(C40_TRANSACTION_ROLLBACK, "001"),
C40002_INTEGRITY_CONSTRAINT_VIOLATION(C40_TRANSACTION_ROLLBACK, "002"),
C40003_STATEMENT_COMPLETION_UNKNOWN(C40_TRANSACTION_ROLLBACK, "003"),
C40004_TRIGGERED_ACTION_EXCEPTION(C40_TRANSACTION_ROLLBACK, "004"),
C42000_NO_SUBCLASS(C42_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION, "000"),
CHZ000_NO_SUBCLASS(CHZ_REMOTE_DATABASE_ACCESS, "000"),
OTHER(SQLStateClass.OTHER, ""),
NONE(SQLStateClass.OTHER, ""),
;
private static final Map lookup = new HashMap();
private final SQLStateClass clazz;
private final String subclass;
static {
for (SQLStateSubclass clazz : SQLStateSubclass.values()) {
lookup.put(clazz.sqlStateClassName() + clazz.subclass, clazz);
}
}
private SQLStateSubclass(SQLStateClass clazz, String subclass) {
this.clazz = clazz;
this.subclass = subclass;
}
public String sqlStateSubclassName() {
return subclass;
}
public SQLStateClass sqlStateClass() {
return clazz;
}
public String sqlStateClassName() {
return sqlStateClass().className();
}
public static SQLStateSubclass fromCode(String code) {
if (code == null || code.length() != 5)
return SQLStateSubclass.OTHER;
SQLStateSubclass result;
result = lookup.get(code);
if (result != null)
return result;
result = lookup.get(code.substring(0, 2) + "000");
if (result != null)
return result;
else
return SQLStateSubclass.OTHER;
}
}