com.hazelcast.org.apache.calcite.avatica.SqlState Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you 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.
*/
package com.hazelcast.org.apache.calcite.avatica;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
* SQL error codes.
*
* Based upon Table 33 — SQLSTATE class and subclass values in
* SQL:2014 section 24.1, which is as follows.
*
*
* Table 33 — SQLSTATE class and subclass values
*
* Category
* Condition
* Class
* Subcondition
* Subclass
*
*
* X
* ambiguous cursor name
* 3C
* (no subclass)
* 000
*
*
* X
* attempt to assign to non-updatable column
* 0U
* (no subclass)
* 000
*
*
* X
* attempt to assign to ordering column
* 0V
* (no subclass)
* 000
*
*
* X
* cli specific condition
* HY
* (no subclass)
* 000
*
*
* X
* cardinality violation
* 21
* (no subclass)
* 000
*
*
* X
* connection exception
* 08
* (no subclass)
* 000
*
*
*
*
*
* connection does not exist
* 003
*
*
*
*
*
* connection failure
* 006
*
*
*
*
*
* connection name in use
* 002
*
*
*
*
*
* SQL-client unable to establish SQL-connection
* 001
*
*
*
*
*
* SQL-server rejected establishment of SQL-connection
* 004
*
*
*
*
*
* transaction resolution unknown
* 007
*
*
* X
* cursor sensitivity exception
* 36
* (no subclass)
* 000
*
*
*
*
*
* request failed
* 002
*
*
*
*
*
* request rejected
* 001
*
*
* X
* data exception
* 22
* (no subclass)
* 000
*
*
*
*
*
* array data, right truncation
* 02F
*
*
*
*
*
* array element error
* 02E
*
*
*
*
*
* attempt to replace a zero-length string
* 01U
*
*
*
*
*
* character not in repertoire
* 021
*
*
*
*
*
* datetime field overflow
* 008
*
*
*
*
*
* division by zero
* 012
*
*
*
*
*
* error in assignment
* 005
*
*
*
*
*
* escape character conflict
* 00B
*
*
*
*
*
* indicator overflow
* 022
*
*
*
*
*
* interval field overflow
* 015
*
*
*
*
*
* interval value out of range
* 00P
*
*
*
*
*
* invalid argument for natural logarithm
* 01E
*
*
*
*
*
* invalid argument for NTILE function
* 014
*
*
*
*
*
* invalid argument for NTH_VALUE function
* 016
*
*
*
*
*
* invalid argument for power function
* 01F
*
*
*
*
*
* invalid argument for row pattern navigation operation
* 02J
*
*
*
*
*
* invalid argument for width bucket function
* 01G
*
*
*
*
*
* invalid character value for cast
* 018
*
*
*
*
*
* invalid datetime format
* 007
*
*
*
*
*
* invalid escape character
* 019
*
*
*
*
*
* invalid escape octet
* 00D
*
*
*
*
*
* invalid escape sequence
* 025
*
*
*
*
*
* invalid indicator parameter value
* 010
*
*
*
*
*
* invalid interval format
* 006
*
*
*
*
*
* invalid parameter value
* 023
*
*
*
*
*
* invalid period value
* 020
*
*
*
*
*
* invalid preceding or following size in window function
* 013
*
*
*
*
*
* invalid regular expression
* 01B
*
*
*
*
*
* invalid repeat argument in a sample clause
* 02G
*
*
*
*
*
* invalid row count in fetch first clause
* 01W
*
*
*
*
*
* invalid row count in result offset clause
* 01X
*
*
*
*
*
* invalid row version
* 01H
*
*
*
*
*
* invalid sample size
* 02H
*
*
*
*
*
* invalid time zone displacement value
* 009
*
*
*
*
*
* invalid use of escape character
* 00C
*
*
*
*
*
* invalid XQuery option flag
* 01T
*
*
*
*
*
* invalid XQuery regular expression
* 01S
*
*
*
*
*
* invalid XQuery replacement string
* 01V
*
*
*
*
*
* most specific type mismatch
* 00G
*
*
*
*
*
* multiset value overflow
* 00Q
*
*
*
*
*
* noncharacter in UCS string
* 029
*
*
*
*
*
* null value substituted for mutator subject parameter
* 02D
*
*
*
*
*
* null row not permitted in table
* 01C
*
*
*
*
*
* null value in array target
* 00E
*
*
*
*
*
* null value, no indicator parameter
* 002
*
*
*
*
*
* null value not allowed
* 004
*
*
*
*
*
* numeric value out of range
* 003
*
*
*
*
*
* sequence generator limit exceeded
* 00H
*
*
*
*
*
* skip to non-existent row
* 02K
*
*
*
*
*
* skip to first row of match
* 02L
*
*
*
*
*
* string data, length mismatch
* 026
*
*
*
*
*
* string data, right truncation
* 001
*
*
*
*
*
* substring error
* 011
*
*
*
*
*
* trim error
* 027
*
*
*
*
*
* unterminated C string
* 024
*
*
*
*
*
* zero-length character string
* 00F
*
*
* X
* dependent privilege descriptors still exist
* 2B
* (no subclass)
* 000
*
*
* X
* diagnostics exception
* 0Z
* (no subclass)
* 000
*
*
*
*
*
* maximum number of stacked diagnostics areas exceeded
* 001
*
*
* X
* dynamic SQL error
* 07
* (no subclass)
* 000
*
*
*
*
*
* cursor specification cannot be executed
* 003
*
*
*
*
*
* data type transform function violation
* 00B
*
*
*
*
*
* invalid DATA target
* 00D
*
*
*
*
*
* invalid DATETIME_INTERVAL_CODE
* 00F
*
*
*
*
*
* invalid descriptor count
* 008
*
*
*
*
*
* invalid descriptor index
* 009
*
*
*
*
*
* invalid LEVEL value
* 00E
*
*
*
*
*
* prepared statement not a cursor specification
* 005
*
*
*
*
*
* restricted data type attribute violation
* 006
*
*
*
*
*
* undefined DATA value
* 00C
*
*
*
*
*
* using clause does not match dynamic parameter specifications
* 001
*
*
*
*
*
* using clause does not match target specifications
* 002
*
*
*
*
*
* using clause required for dynamic parameters
* 004
*
*
*
*
*
* using clause required for result fields
* 007
*
*
* X
* external routine exception
* 38
* (no subclass)
* 000
*
*
*
*
*
* containing SQL not permitted
* 001
*
*
*
*
*
* modifying SQL-data not permitted
* 002
*
*
*
*
*
* prohibited SQL-statement attempted
* 003
*
*
*
*
*
* reading SQL-data not permitted
* 004
*
*
* X
* external routine invocation exception
* 39
* (no subclass)
* 000
*
*
*
*
*
* null value not allowed
* 004
*
*
* X
* feature not supported
* 0A
* (no subclass)
* 000
*
*
*
*
*
* multiple server transactions
* 001
*
*
* X
* integrity constraint violation
* 23
* (no subclass)
* 000
*
*
*
*
*
* restrict violation
* 001
*
*
* X
* invalid authorization specification
* 28
* (no subclass)
* 000
*
*
* X
* invalid catalog name
* 3D
* (no subclass)
* 000
*
*
* X
* invalid character set name
* 2C
* (no subclass)
* 000
*
*
*
*
*
* cannot drop SQL-session default character set
* 001
*
*
* X
* invalid condition number
* 35
* (no subclass)
* 000
*
*
* X
* invalid connection name
* 2E
* (no subclass)
* 000
*
*
* X
* invalid cursor name
* 34
* (no subclass)
* 000
*
*
* X
* invalid cursor state
* 24
* (no subclass)
* 000
*
*
* X
* invalid grantor
* 0L
* (no subclass)
* 000
*
*
* X
* invalid role specification
* 0P
* (no subclass)
* 000
*
*
* X
* invalid schema name
* 3F
* (no subclass)
* 000
*
*
* X
* invalid schema name list specification
* 0E
* (no subclass)
* 000
*
*
* X
* invalid collation name
* 2H
* (no subclass)
* 000
*
*
* X
* invalid SQL descriptor name
* 33
* (no subclass)
* 000
*
*
* X
* invalid SQL-invoked procedure reference
* 0M
* (no subclass)
* 000
*
*
* X
* invalid SQL statement name
* 26
* (no subclass)
* 000
*
*
* X
* invalid SQL statement identifier
* 30
* (no subclass)
* 000
*
*
* X
* invalid target type specification
* 0D
* (no subclass)
* 000
*
*
* X
* invalid transaction state
* 25
* (no subclass)
* 000
*
*
*
*
*
* active SQL-transaction
* 001
*
*
*
*
*
* branch transaction already active
* 002
*
*
*
*
*
* held cursor requires same isolation level
* 008
*
*
*
*
*
* inappropriate access mode for branch transaction
* 003
*
*
*
*
*
* inappropriate isolation level for branch transaction
* 004
*
*
*
*
*
* no active SQL-transaction for branch transaction
* 005
*
*
*
*
*
* read-only SQL-transaction
* 006
*
*
*
*
*
* schema and data statement mixing not supported
* 007
*
*
* X
* invalid transaction termination
* 2D
* (no subclass)
* 000
*
*
* X
* invalid transform group name specification
* 0S
* (no subclass)
* 000
*
*
* X
* locator exception
* 0F
* (no subclass)
* 000
*
*
*
*
*
* invalid specification
* 001
*
*
* N
* no data
* 02
* (no subclass)
* 000
*
*
*
*
*
* no additional result sets returned
* 001
*
*
* X
* prohibited statement encountered during trigger execution
* 0W
* (no subclass)
* 000
*
*
*
*
*
* modify table modified by data change delta table
* 001
*
*
* X
* Remote Database Access
* HZ
* (no subclass)
* 000
*
*
* X
* savepoint exception
* 3B
* (no subclass)
* 000
*
*
*
*
*
* invalid specification
* 001
*
*
*
*
*
* too many
* 002
*
*
* X
* SQL routine exception
* 2F
* (no subclass)
* 000
*
*
*
*
*
* function executed no return statement
* 005
*
*
*
*
*
* modifying SQL-data not permitted
* 002
*
*
*
*
*
* prohibited SQL-statement attempted
* 003
*
*
*
*
*
* reading SQL-data not permitted
* 004
*
*
* S
* successful completion
* 00
* (no subclass)
* 000
*
*
* X
* syntax error or access rule violation
* 42
* (no subclass)
* 000
*
*
* X
* syntax error or access rule violation in direct statement
* 2A
* (no subclass)
* 000
*
*
* X
* syntax error or access rule violation in dynamic statement
* 37
* (no subclass)
* 000
*
*
* X
* target table disagrees with cursor specification
* 0T
* (no subclass)
* 000
*
*
* X
* transaction rollback
* 40
* (no subclass)
* 000
*
*
*
*
*
* integrity constraint violation
* 002
*
*
*
*
*
* serialization failure
* 001
*
*
*
*
*
* statement completion unknown
* 003
*
*
*
*
*
* triggered action exception
* 004
*
*
* X
* triggered action exception
* 09
* (no subclass)
* 000
*
*
* X
* triggered data change violation
* 27
* (no subclass)
* 000
*
*
*
*
*
* modify table modified by data change delta table
* 001
*
*
* W
* warning
* 01
* (no subclass)
* 000
*
*
*
*
*
* additional result sets returned
* 00D
*
*
*
*
*
* array data, right truncation
* 02F
*
*
*
*
*
* attempt to return too many result sets
* 00E
*
*
*
*
*
* cursor operation conflict
* 001
*
*
*
*
*
* default value too long for information schema
* 00B
*
*
*
*
*
* disconnect error
* 002
*
*
*
*
*
* insufficient item descriptor areas
* 005
*
*
*
*
*
* invalid number of conditions
* 012
*
*
*
*
*
* null value eliminated in set function
* 003
*
*
*
*
*
* privilege not granted
* 007
*
*
*
*
*
* privilege not revoked
* 006
*
*
*
*
*
* query expression too long for information schema
* 00A
*
*
*
*
*
* result sets returned
* 00C
*
*
*
*
*
* search condition too long for information schema
* 009
*
*
*
*
*
* statement too long for information schema
* 00F
*
*
*
*
*
* string data, right truncation
* 004
*
*
* X
* with check option violation
* 44
* (no subclass)
* 000
*
*
*/
public enum SqlState {
/** 3C000: ambiguous cursor name */
AMBIGUOUS_CURSOR_NAME_NO_SUBCLASS(Category.X, "ambiguous cursor name", "3C", null, null),
/** 0U000: attempt to assign to non-updatable column */
ATTEMPT_TO_ASSIGN_TO_NON_UPDATABLE_COLUMN_NO_SUBCLASS(Category.X,
"attempt to assign to non-updatable column", "0U", null, null),
/** 0V000: attempt to assign to ordering column */
ATTEMPT_TO_ASSIGN_TO_ORDERING_COLUMN_NO_SUBCLASS(Category.X,
"attempt to assign to ordering column", "0V", null, null),
/** HY000: cli specific condition */
CLI_SPECIFIC_CONDITION_NO_SUBCLASS(Category.X, "cli specific condition", "HY", null, null),
/** 21000: cardinality violation */
CARDINALITY_VIOLATION_NO_SUBCLASS(Category.X, "cardinality violation", "21", null, null),
/** 08000: connection exception */
CONNECTION_EXCEPTION_NO_SUBCLASS(Category.X, "connection exception", "08", null, null),
/** 08003: connection exception: connection does not exist */
CONNECTION_EXCEPTION_CONNECTION_DOES_NOT_EXIST(Category.X, "connection exception", "08",
"connection does not exist", "003"),
/** 08006: connection exception: connection failure */
CONNECTION_EXCEPTION_CONNECTION_FAILURE(Category.X, "connection exception", "08",
"connection failure", "006"),
/** 08002: connection exception: connection name in use */
CONNECTION_EXCEPTION_CONNECTION_NAME_IN_USE(Category.X, "connection exception", "08",
"connection name in use", "002"),
/** 08001: connection exception: SQL-client unable to establish SQL-connection */
CONNECTION_EXCEPTION_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION(Category.X,
"connection exception", "08", "SQL-client unable to establish SQL-connection", "001"),
/** 08004: connection exception: SQL-server rejected establishment of SQL-connection */
CONNECTION_EXCEPTION_SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION(Category.X,
"connection exception", "08", "SQL-server rejected establishment of SQL-connection", "004"),
/** 08007: connection exception: transaction resolution unknown */
CONNECTION_EXCEPTION_TRANSACTION_RESOLUTION_UNKNOWN(Category.X, "connection exception", "08",
"transaction resolution unknown", "007"),
/** 36000: cursor sensitivity exception */
CURSOR_SENSITIVITY_EXCEPTION_NO_SUBCLASS(Category.X, "cursor sensitivity exception", "36", null,
null),
/** 36002: cursor sensitivity exception: request failed */
CURSOR_SENSITIVITY_EXCEPTION_REQUEST_FAILED(Category.X, "cursor sensitivity exception", "36",
"request failed", "002"),
/** 36001: cursor sensitivity exception: request rejected */
CURSOR_SENSITIVITY_EXCEPTION_REQUEST_REJECTED(Category.X, "cursor sensitivity exception", "36",
"request rejected", "001"),
/** 22000: data exception */
DATA_EXCEPTION_NO_SUBCLASS(Category.X, "data exception", "22", null, null),
/** 2202F: data exception: array data, right truncation */
DATA_EXCEPTION_ARRAY_DATA_RIGHT_TRUNCATION(Category.X, "data exception", "22",
"array data, right truncation", "02F"),
/** 2202E: data exception: array element error */
DATA_EXCEPTION_ARRAY_ELEMENT_ERROR(Category.X, "data exception", "22", "array element error",
"02E"),
/** 2201U: data exception: attempt to replace a zero-length string */
DATA_EXCEPTION_ATTEMPT_TO_REPLACE_A_ZERO_LENGTH_STRING(Category.X, "data exception", "22",
"attempt to replace a zero-length string", "01U"),
/** 22021: data exception: character not in repertoire */
DATA_EXCEPTION_CHARACTER_NOT_IN_REPERTOIRE(Category.X, "data exception", "22",
"character not in repertoire", "021"),
/** 22008: data exception: datetime field overflow */
DATA_EXCEPTION_DATETIME_FIELD_OVERFLOW(Category.X, "data exception", "22",
"datetime field overflow", "008"),
/** 22012: data exception: division by zero */
DATA_EXCEPTION_DIVISION_BY_ZERO(Category.X, "data exception", "22", "division by zero", "012"),
/** 22005: data exception: error in assignment */
DATA_EXCEPTION_ERROR_IN_ASSIGNMENT(Category.X, "data exception", "22", "error in assignment",
"005"),
/** 2200B: data exception: escape character conflict */
DATA_EXCEPTION_ESCAPE_CHARACTER_CONFLICT(Category.X, "data exception", "22",
"escape character conflict", "00B"),
/** 22022: data exception: indicator overflow */
DATA_EXCEPTION_INDICATOR_OVERFLOW(Category.X, "data exception", "22", "indicator overflow",
"022"),
/** 22015: data exception: interval field overflow */
DATA_EXCEPTION_INTERVAL_FIELD_OVERFLOW(Category.X, "data exception", "22",
"interval field overflow", "015"),
/** 2200P: data exception: interval value out of range */
DATA_EXCEPTION_INTERVAL_VALUE_OUT_OF_RANGE(Category.X, "data exception", "22",
"interval value out of range", "00P"),
/** 2201E: data exception: invalid argument for natural logarithm */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_NATURAL_LOGARITHM(Category.X, "data exception", "22",
"invalid argument for natural logarithm", "01E"),
/** 22014: data exception: invalid argument for NTILE function */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_NTILE_FUNCTION(Category.X, "data exception", "22",
"invalid argument for NTILE function", "014"),
/** 22016: data exception: invalid argument for NTH_VALUE function */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION(Category.X, "data exception", "22",
"invalid argument for NTH_VALUE function", "016"),
/** 2201F: data exception: invalid argument for power function */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_POWER_FUNCTION(Category.X, "data exception", "22",
"invalid argument for power function", "01F"),
/** 2202J: data exception: invalid argument for row pattern navigation operation */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_ROW_PATTERN_NAVIGATION_OPERATION(Category.X, "data exception",
"22", "invalid argument for row pattern navigation operation", "02J"),
/** 2201G: data exception: invalid argument for width bucket function */
DATA_EXCEPTION_INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION(Category.X, "data exception", "22",
"invalid argument for width bucket function", "01G"),
/** 22018: data exception: invalid character value for cast */
DATA_EXCEPTION_INVALID_CHARACTER_VALUE_FOR_CAST(Category.X, "data exception", "22",
"invalid character value for cast", "018"),
/** 22007: data exception: invalid datetime format */
DATA_EXCEPTION_INVALID_DATETIME_FORMAT(Category.X, "data exception", "22",
"invalid datetime format", "007"),
/** 22019: data exception: invalid escape character */
DATA_EXCEPTION_INVALID_ESCAPE_CHARACTER(Category.X, "data exception", "22",
"invalid escape character", "019"),
/** 2200D: data exception: invalid escape octet */
DATA_EXCEPTION_INVALID_ESCAPE_OCTET(Category.X, "data exception", "22", "invalid escape octet",
"00D"),
/** 22025: data exception: invalid escape sequence */
DATA_EXCEPTION_INVALID_ESCAPE_SEQUENCE(Category.X, "data exception", "22",
"invalid escape sequence", "025"),
/** 22010: data exception: invalid indicator parameter value */
DATA_EXCEPTION_INVALID_INDICATOR_PARAMETER_VALUE(Category.X, "data exception", "22",
"invalid indicator parameter value", "010"),
/** 22006: data exception: invalid interval format */
DATA_EXCEPTION_INVALID_INTERVAL_FORMAT(Category.X, "data exception", "22",
"invalid interval format", "006"),
/** 22023: data exception: invalid parameter value */
DATA_EXCEPTION_INVALID_PARAMETER_VALUE(Category.X, "data exception", "22",
"invalid parameter value", "023"),
/** 22020: data exception: invalid period value */
DATA_EXCEPTION_INVALID_PERIOD_VALUE(Category.X, "data exception", "22", "invalid period value",
"020"),
/** 22013: data exception: invalid preceding or following size in window function */
DATA_EXCEPTION_INVALID_PRECEDING_OR_FOLLOWING_SIZE_IN_WINDOW_FUNCTION(Category.X,
"data exception", "22", "invalid preceding or following size in window function", "013"),
/** 2201B: data exception: invalid regular expression */
DATA_EXCEPTION_INVALID_REGULAR_EXPRESSION(Category.X, "data exception", "22",
"invalid regular expression", "01B"),
/** 2202G: data exception: invalid repeat argument in a sample clause */
DATA_EXCEPTION_INVALID_REPEAT_ARGUMENT_IN_A_SAMPLE_CLAUSE(Category.X, "data exception", "22",
"invalid repeat argument in a sample clause", "02G"),
/** 2201W: data exception: invalid row count in fetch first clause */
DATA_EXCEPTION_INVALID_ROW_COUNT_IN_FETCH_FIRST_CLAUSE(Category.X, "data exception", "22",
"invalid row count in fetch first clause", "01W"),
/** 2201X: data exception: invalid row count in result offset clause */
DATA_EXCEPTION_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE(Category.X, "data exception", "22",
"invalid row count in result offset clause", "01X"),
/** 2201H: data exception: invalid row version */
DATA_EXCEPTION_INVALID_ROW_VERSION(Category.X, "data exception", "22", "invalid row version",
"01H"),
/** 2202H: data exception: invalid sample size */
DATA_EXCEPTION_INVALID_SAMPLE_SIZE(Category.X, "data exception", "22", "invalid sample size",
"02H"),
/** 22009: data exception: invalid time zone displacement value */
DATA_EXCEPTION_INVALID_TIME_ZONE_DISPLACEMENT_VALUE(Category.X, "data exception", "22",
"invalid time zone displacement value", "009"),
/** 2200C: data exception: invalid use of escape character */
DATA_EXCEPTION_INVALID_USE_OF_ESCAPE_CHARACTER(Category.X, "data exception", "22",
"invalid use of escape character", "00C"),
/** 2201T: data exception: invalid XQuery option flag */
DATA_EXCEPTION_INVALID_XQUERY_OPTION_FLAG(Category.X, "data exception", "22",
"invalid XQuery option flag", "01T"),
/** 2201S: data exception: invalid XQuery regular expression */
DATA_EXCEPTION_INVALID_XQUERY_REGULAR_EXPRESSION(Category.X, "data exception", "22",
"invalid XQuery regular expression", "01S"),
/** 2201V: data exception: invalid XQuery replacement string */
DATA_EXCEPTION_INVALID_XQUERY_REPLACEMENT_STRING(Category.X, "data exception", "22",
"invalid XQuery replacement string", "01V"),
/** 2200G: data exception: most specific type mismatch */
DATA_EXCEPTION_MOST_SPECIFIC_TYPE_MISMATCH(Category.X, "data exception", "22",
"most specific type mismatch", "00G"),
/** 2200Q: data exception: multiset value overflow */
DATA_EXCEPTION_MULTISET_VALUE_OVERFLOW(Category.X, "data exception", "22",
"multiset value overflow", "00Q"),
/** 22029: data exception: noncharacter in UCS string */
DATA_EXCEPTION_NONCHARACTER_IN_UCS_STRING(Category.X, "data exception", "22",
"noncharacter in UCS string", "029"),
/** 2202D: data exception: null value substituted for mutator subject parameter */
DATA_EXCEPTION_NULL_VALUE_SUBSTITUTED_FOR_MUTATOR_SUBJECT_PARAMETER(Category.X, "data exception",
"22", "null value substituted for mutator subject parameter", "02D"),
/** 2201C: data exception: null row not permitted in table */
DATA_EXCEPTION_NULL_ROW_NOT_PERMITTED_IN_TABLE(Category.X, "data exception", "22",
"null row not permitted in table", "01C"),
/** 2200E: data exception: null value in array target */
DATA_EXCEPTION_NULL_VALUE_IN_ARRAY_TARGET(Category.X, "data exception", "22",
"null value in array target", "00E"),
/** 22002: data exception: null value, no indicator parameter */
DATA_EXCEPTION_NULL_VALUE_NO_INDICATOR_PARAMETER(Category.X, "data exception", "22",
"null value, no indicator parameter", "002"),
/** 22004: data exception: null value not allowed */
DATA_EXCEPTION_NULL_VALUE_NOT_ALLOWED(Category.X, "data exception", "22",
"null value not allowed", "004"),
/** 22003: data exception: numeric value out of range */
DATA_EXCEPTION_NUMERIC_VALUE_OUT_OF_RANGE(Category.X, "data exception", "22",
"numeric value out of range", "003"),
/** 2200H: data exception: sequence generator limit exceeded */
DATA_EXCEPTION_SEQUENCE_GENERATOR_LIMIT_EXCEEDED(Category.X, "data exception", "22",
"sequence generator limit exceeded", "00H"),
/** 2202K: data exception: skip to non-existent row */
DATA_EXCEPTION_SKIP_TO_NON_EXISTENT_ROW(Category.X, "data exception", "22",
"skip to non-existent row", "02K"),
/** 2202L: data exception: skip to first row of match */
DATA_EXCEPTION_SKIP_TO_FIRST_ROW_OF_MATCH(Category.X, "data exception", "22",
"skip to first row of match", "02L"),
/** 22026: data exception: string data, length mismatch */
DATA_EXCEPTION_STRING_DATA_LENGTH_MISMATCH(Category.X, "data exception", "22",
"string data, length mismatch", "026"),
/** 22001: data exception: string data, right truncation */
DATA_EXCEPTION_STRING_DATA_RIGHT_TRUNCATION(Category.X, "data exception", "22",
"string data, right truncation", "001"),
/** 22011: data exception: substring error */
DATA_EXCEPTION_SUBSTRING_ERROR(Category.X, "data exception", "22", "substring error", "011"),
/** 22027: data exception: trim error */
DATA_EXCEPTION_TRIM_ERROR(Category.X, "data exception", "22", "trim error", "027"),
/** 22024: data exception: unterminated C string */
DATA_EXCEPTION_UNTERMINATED_C_STRING(Category.X, "data exception", "22", "unterminated C string",
"024"),
/** 2200F: data exception: zero-length character string */
DATA_EXCEPTION_ZERO_LENGTH_CHARACTER_STRING(Category.X, "data exception", "22",
"zero-length character string", "00F"),
/** 2B000: dependent privilege descriptors still exist */
DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST_NO_SUBCLASS(Category.X,
"dependent privilege descriptors still exist", "2B", null, null),
/** 0Z000: diagnostics exception */
DIAGNOSTICS_EXCEPTION_NO_SUBCLASS(Category.X, "diagnostics exception", "0Z", null, null),
/** 0Z001: diagnostics exception: maximum number of stacked diagnostics areas exceeded */
DIAGNOSTICS_EXCEPTION_MAXIMUM_NUMBER_OF_DIAGNOSTICS_AREAS_EXCEEDED(Category.X,
"diagnostics exception", "0Z", "maximum number of stacked diagnostics areas exceeded", "001"),
/** 07000: dynamic SQL error */
DYNAMIC_SQL_ERROR_NO_SUBCLASS(Category.X, "dynamic SQL error", "07", null, null),
/** 07003: dynamic SQL error: cursor specification cannot be executed */
DYNAMIC_SQL_ERROR_CURSOR_SPECIFICATION_CANNOT_BE_EXECUTED(Category.X, "dynamic SQL error", "07",
"cursor specification cannot be executed", "003"),
/** 0700B: dynamic SQL error: data type transform function violation */
DYNAMIC_SQL_ERROR_DATA_TYPE_TRANSFORM_FUNCTION_VIOLATION(Category.X, "dynamic SQL error", "07",
"data type transform function violation", "00B"),
/** 0700D: dynamic SQL error: invalid DATA target */
DYNAMIC_SQL_ERROR_INVALID_DATA_TARGET(Category.X, "dynamic SQL error", "07",
"invalid DATA target", "00D"),
/** 0700F: dynamic SQL error: invalid DATETIME_INTERVAL_CODE */
DYNAMIC_SQL_ERROR_INVALID_DATETIME_INTERVAL_CODE(Category.X, "dynamic SQL error", "07",
"invalid DATETIME_INTERVAL_CODE", "00F"),
/** 07008: dynamic SQL error: invalid descriptor count */
DYNAMIC_SQL_ERROR_INVALID_DESCRIPTOR_COUNT(Category.X, "dynamic SQL error", "07",
"invalid descriptor count", "008"),
/** 07009: dynamic SQL error: invalid descriptor index */
DYNAMIC_SQL_ERROR_INVALID_DESCRIPTOR_INDEX(Category.X, "dynamic SQL error", "07",
"invalid descriptor index", "009"),
/** 0700E: dynamic SQL error: invalid LEVEL value */
DYNAMIC_SQL_ERROR_INVALID_LEVEL_VALUE(Category.X, "dynamic SQL error", "07",
"invalid LEVEL value", "00E"),
/** 07005: dynamic SQL error: prepared statement not a cursor specification */
DYNAMIC_SQL_ERROR_PREPARED_STATEMENT_NOT_A_CURSOR_SPECIFICATION(
Category.X, "dynamic SQL error", "07",
"prepared statement not a cursor specification", "005"),
/** 07006: dynamic SQL error: restricted data type attribute violation */
DYNAMIC_SQL_ERROR_RESTRICTED_DATA_TYPE_ATTRIBUTE_VIOLATION(
Category.X, "dynamic SQL error", "07", "restricted data type attribute violation", "006"),
/** 0700C: dynamic SQL error: undefined DATA value */
DYNAMIC_SQL_ERROR_UNDEFINED_DATA_VALUE(Category.X, "dynamic SQL error", "07",
"undefined DATA value", "00C"),
/** 07001: dynamic SQL error: using clause does not match dynamic parameter specifications */
DYNAMIC_SQL_ERROR_USING_CLAUSE_DOES_NOT_MATCH_DYNAMIC_PARAMETER_SPEC(Category.X,
"dynamic SQL error", "07", "using clause does not match dynamic parameter specifications",
"001"),
/** 07002: dynamic SQL error: using clause does not match target specifications */
DYNAMIC_SQL_ERROR_USING_CLAUSE_DOES_NOT_MATCH_TARGET_SPEC(Category.X,
"dynamic SQL error", "07", "using clause does not match target specifications", "002"),
/** 07004: dynamic SQL error: using clause required for dynamic parameters */
DYNAMIC_SQL_ERROR_USING_CLAUSE_REQUIRED_FOR_DYNAMIC_PARAMETERS(Category.X, "dynamic SQL error",
"07", "using clause required for dynamic parameters", "004"),
/** 07007: dynamic SQL error: using clause required for result fields */
DYNAMIC_SQL_ERROR_USING_CLAUSE_REQUIRED_FOR_RESULT_FIELDS(Category.X, "dynamic SQL error", "07",
"using clause required for result fields", "007"),
/** 38000: external routine exception */
EXTERNAL_ROUTINE_EXCEPTION_NO_SUBCLASS(Category.X, "external routine exception", "38", null,
null),
/** 38001: external routine exception: containing SQL not permitted */
EXTERNAL_ROUTINE_EXCEPTION_CONTAINING_SQL_NOT_PERMITTED(Category.X, "external routine exception",
"38", "containing SQL not permitted", "001"),
/** 38002: external routine exception: modifying SQL-data not permitted */
EXTERNAL_ROUTINE_EXCEPTION_MODIFYING_SQL_DATA_NOT_PERMITTED(Category.X,
"external routine exception", "38", "modifying SQL-data not permitted", "002"),
/** 38003: external routine exception: prohibited SQL-statement attempted */
EXTERNAL_ROUTINE_EXCEPTION_PROHIBITED_SQL_STATEMENT_ATTEMPTED(Category.X,
"external routine exception", "38", "prohibited SQL-statement attempted", "003"),
/** 38004: external routine exception: reading SQL-data not permitted */
EXTERNAL_ROUTINE_EXCEPTION_READING_SQL_DATA_NOT_PERMITTED(Category.X,
"external routine exception", "38", "reading SQL-data not permitted", "004"),
/** 39000: external routine invocation exception */
EXTERNAL_ROUTINE_INVOCATION_EXCEPTION_NO_SUBCLASS(Category.X,
"external routine invocation exception", "39", null, null),
/** 39004: external routine invocation exception: null value not allowed */
EXTERNAL_ROUTINE_INVOCATION_EXCEPTION_NULL_VALUE_NOT_ALLOWED(Category.X,
"external routine invocation exception", "39", "null value not allowed", "004"),
/** 0A000: feature not supported */
FEATURE_NOT_SUPPORTED_NO_SUBCLASS(Category.X, "feature not supported", "0A", null, null),
/** 0A001: feature not supported: multiple server transactions */
FEATURE_NOT_SUPPORTED_MULTIPLE_ENVIRONMENT_TRANSACTIONS(Category.X, "feature not supported", "0A",
"multiple server transactions", "001"),
/** 23000: integrity constraint violation */
INTEGRITY_CONSTRAINT_VIOLATION_NO_SUBCLASS(Category.X, "integrity constraint violation", "23",
null, null),
/** 23001: integrity constraint violation: restrict violation */
INTEGRITY_CONSTRAINT_VIOLATION_RESTRICT_VIOLATION(Category.X, "integrity constraint violation",
"23", "restrict violation", "001"),
/** 28000: invalid authorization specification */
INVALID_AUTHORIZATION_SPECIFICATION_NO_SUBCLASS(Category.X, "invalid authorization specification",
"28", null, null),
/** 3D000: invalid catalog name */
INVALID_CATALOG_NAME_NO_SUBCLASS(Category.X, "invalid catalog name", "3D", null, null),
/** 2C000: invalid character set name */
INVALID_CHARACTER_SET_NAME_NO_SUBCLASS(Category.X, "invalid character set name", "2C", null,
null),
/** 2C001: invalid character set name: cannot drop SQL-session default character set */
INVALID_CHARACTER_SET_NAME_CANNOT_DROP_SQLSESSION_DEFAULT_CHARACTER_SET(Category.X,
"invalid character set name", "2C", "cannot drop SQL-session default character set", "001"),
/** 35000: invalid condition number */
INVALID_CONDITION_NUMBER_NO_SUBCLASS(Category.X, "invalid condition number", "35", null, null),
/** 2E000: invalid connection name */
INVALID_CONNECTION_NAME_NO_SUBCLASS(Category.X, "invalid connection name", "2E", null, null),
/** 34000: invalid cursor name */
INVALID_CURSOR_NAME_NO_SUBCLASS(Category.X, "invalid cursor name", "34", null, null),
/** 24000: invalid cursor state */
INVALID_CURSOR_STATE_NO_SUBCLASS(Category.X, "invalid cursor state", "24", null, null),
/** 0L000: invalid grantor */
INVALID_GRANTOR_STATE_NO_SUBCLASS(Category.X, "invalid grantor", "0L", null, null),
/** 0P000: invalid role specification */
INVALID_ROLE_SPECIFICATION(Category.X, "invalid role specification", "0P", null,
null),
/** 3F000: invalid schema name */
INVALID_SCHEMA_NAME_NO_SUBCLASS(Category.X, "invalid schema name", "3F", null, null),
/** 0E000: invalid schema name list specification */
INVALID_SCHEMA_NAME_LIST_SPECIFICATION_NO_SUBCLASS(Category.X,
"invalid schema name list specification", "0E", null, null),
/** 2H000: invalid collation name */
INVALID_COLLATION_NAME_NO_SUBCLASS(Category.X, "invalid collation name", "2H", null, null),
/** 33000: invalid SQL descriptor name */
INVALID_SQL_DESCRIPTOR_NAME_NO_SUBCLASS(Category.X, "invalid SQL descriptor name", "33", null,
null),
/** 0M000: invalid SQL-invoked procedure reference */
INVALID_SQL_INVOKED_PROCEDURE_REFERENCE_NO_SUBCLASS(Category.X,
"invalid SQL-invoked procedure reference", "0M", null, null),
/** 26000: invalid SQL statement name */
INVALID_SQL_STATEMENT_NAME_NO_SUBCLASS(Category.X, "invalid SQL statement name", "26", null,
null),
/** 30000: invalid SQL statement identifier */
INVALID_SQL_STATEMENT_IDENTIFIER_NO_SUBCLASS(Category.X, "invalid SQL statement identifier", "30",
null, null),
/** 0D000: invalid target type specification */
INVALID_TARGET_TYPE_SPECIFICATION_NO_SUBCLASS(Category.X, "invalid target type specification",
"0D", null, null),
/** 25000: invalid transaction state */
INVALID_TRANSACTION_STATE_NO_SUBCLASS(Category.X, "invalid transaction state", "25", null, null),
/** 25001: invalid transaction state: active SQL-transaction */
INVALID_TRANSACTION_STATE_ACTIVE_SQL_TRANSACTION(Category.X, "invalid transaction state", "25",
"active SQL-transaction", "001"),
/** 25002: invalid transaction state: branch transaction already active */
INVALID_TRANSACTION_STATE_BRANCH_TRANSACTION_ALREADY_ACTIVE(Category.X,
"invalid transaction state", "25", "branch transaction already active", "002"),
/** 25008: invalid transaction state: held cursor requires same isolation level */
INVALID_TRANSACTION_STATE_HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL(Category.X,
"invalid transaction state", "25", "held cursor requires same isolation level", "008"),
/** 25003: invalid transaction state: inappropriate access mode for branch transaction */
INVALID_TRANSACTION_STATE_INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION(Category.X,
"invalid transaction state", "25", "inappropriate access mode for branch transaction", "003"),
/** 25004: invalid transaction state: inappropriate isolation level for branch transaction */
INVALID_TRANSACTION_STATE_INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION(Category.X,
"invalid transaction state", "25", "inappropriate isolation level for branch transaction",
"004"),
/** 25005: invalid transaction state: no active SQL-transaction for branch transaction */
INVALID_TRANSACTION_STATE_NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION(Category.X,
"invalid transaction state", "25", "no active SQL-transaction for branch transaction", "005"),
/** 25006: invalid transaction state: read-only SQL-transaction */
INVALID_TRANSACTION_STATE_READ_ONLY_SQL_TRANSACTION(Category.X, "invalid transaction state", "25",
"read-only SQL-transaction", "006"),
/** 25007: invalid transaction state: schema and data statement mixing not supported */
INVALID_TRANSACTION_STATE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED(Category.X,
"invalid transaction state", "25", "schema and data statement mixing not supported", "007"),
/** 2D000: invalid transaction termination */
INVALID_TRANSACTION_TERMINATION_NO_SUBCLASS(Category.X, "invalid transaction termination", "2D",
null, null),
/** 0S000: invalid transform group name specification */
INVALID_TRANSFORM_GROUP_NAME_SPECIFICATION_NO_SUBCLASS(Category.X,
"invalid transform group name specification", "0S", null, null),
/** 0F000: locator exception */
LOCATOR_EXCEPTION_NO_SUBCLASS(Category.X, "locator exception", "0F", null, null),
/** 0F001: locator exception: invalid specification */
LOCATOR_EXCEPTION_INVALID_SPECIFICATION(Category.X, "locator exception", "0F",
"invalid specification", "001"),
/** 02000: no data */
NO_DATA_NO_SUBCLASS(Category.N, "no data", "02", null, null),
/** 02001: no data: no additional result sets returned */
NO_DATA_NO_ADDITIONAL_RESULT_SETS_RETURNED(Category.N, "no data", "02",
"no additional result sets returned", "001"),
/** 0W000: prohibited statement encountered during trigger execution */
PROHIBITED_STATEMENT_DURING_TRIGGER_EXECUTION_NO_SUBCLASS(Category.X,
"prohibited statement encountered during trigger execution", "0W", null, null),
/** 0W001: prohibited statement encountered during trigger execution: modify table modified by
* data change delta table */
PROHIBITED_STATEMENT_DURING_TRIGGER_EXECUTION_MODIFY_TABLE_MODIFIED_BY_DATA_CHANGE_DELTA_TABLE(
Category.X, "prohibited statement encountered during trigger execution", "0W",
"modify table modified by data change delta table", "001"),
/** HZ: Remote Database Access
*
* (See Table 12, 'SQLSTATE class and subclass values for RDA-specific conditions' in
* [ISO9579], Subclause 8.1, 'Exception codes for RDA-specific Conditions', for the definition of
* protocol subconditions and subclass code values.) */
REMOTE_DATABASE_ACCESS_NO_SUBCLASS(Category.X, "Remote Database Access", "HZ", null, null),
/** 3B000: savepoint exception */
SAVEPOINT_EXCEPTION_NO_SUBCLASS(Category.X, "savepoint exception", "3B", null, null),
/** 3B001: savepoint exception: invalid specification */
SAVEPOINT_EXCEPTION_INVALID_SPECIFICATION(Category.X, "savepoint exception", "3B",
"invalid specification", "001"),
/** 3B002: savepoint exception: too many */
SAVEPOINT_EXCEPTION_TOO_MANY(Category.X, "savepoint exception", "3B", "too many", "002"),
/** 2F000: SQL routine exception */
SQL_ROUTINE_EXCEPTION_NO_SUBCLASS(Category.X, "SQL routine exception", "2F", null, null),
/** 2F005: SQL routine exception: function executed no return statement */
SQL_ROUTINE_EXCEPTION_FUNCTION_EXECUTED_NO_RETURN_STATEMENT(Category.X, "SQL routine exception",
"2F", "function executed no return statement", "005"),
/** 2F002: SQL routine exception: modifying SQL-data not permitted */
SQL_ROUTINE_EXCEPTION_MODIFYING_SQL_DATA_NOT_PERMITTED(Category.X, "SQL routine exception", "2F",
"modifying SQL-data not permitted", "002"),
/** 2F003: SQL routine exception: prohibited SQL-statement attempted */
SQL_ROUTINE_EXCEPTION_PROHIBITED_SQL_STATEMENT_ATTEMPTED(Category.X, "SQL routine exception",
"2F", "prohibited SQL-statement attempted", "003"),
/** 2F004: SQL routine exception: reading SQL-data not permitted */
SQL_ROUTINE_EXCEPTION_READING_SQL_DATA_NOT_PERMITTED(Category.X, "SQL routine exception", "2F",
"reading SQL-data not permitted", "004"),
/** 00000: successful completion */
SUCCESSFUL_COMPLETION_NO_SUBCLASS(Category.S, "successful completion", "00", null, null),
/** 42000: syntax error or access rule violation */
SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION_NO_SUBCLASS(Category.X,
"syntax error or access rule violation", "42", null, null),
/** 2A000: syntax error or access rule violation */
SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION_IN_DIRECT_STATEMENT_NO_SUBCLASS(Category.X,
"syntax error or access rule violation in direct statement", "2A", null, null),
/** 37000: syntax error or access rule violation */
SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION_IN_DYNAMIC_STATEMENT_NO_SUBCLASS(Category.X,
"syntax error or access rule violation in dynamic statement", "37", null, null),
/** 0T000: target table disagrees with cursor specification */
TARGET_TABLE_DISAGREES_WITH_CURSOR_SPECIFICATION_NO_SUBCLASS(Category.X,
"target table disagrees with cursor specification", "0T", null, null),
/** 40000: transaction rollback */
TRANSACTION_ROLLBACK_NO_SUBCLASS(Category.X, "transaction rollback", "40", null, null),
/** 40002: transaction rollback: integrity constraint violation */
TRANSACTION_ROLLBACK_INTEGRITY_CONSTRAINT_VIOLATION(Category.X, "transaction rollback", "40",
"integrity constraint violation", "002"),
/** 40001: transaction rollback: serialization failure */
TRANSACTION_ROLLBACK_SERIALIZATION_FAILURE(Category.X, "transaction rollback", "40",
"serialization failure", "001"),
/** 40003: transaction rollback: statement completion unknown */
TRANSACTION_ROLLBACK_STATEMENT_COMPLETION_UNKNOWN(Category.X, "transaction rollback", "40",
"statement completion unknown", "003"),
/** 40004: transaction rollback: triggered action exception */
TRANSACTION_ROLLBACK_TRIGGERED_ACTION_EXCEPTION(Category.X, "transaction rollback", "40",
"triggered action exception", "004"),
/** 09000: triggered action exception */
TRIGGERED_ACTION_EXCEPTION_NO_SUBCLASS(Category.X, "triggered action exception", "09", null,
null),
/** 27000: triggered data change violation */
TRIGGERED_DATA_CHANGE_VIOLATION_NO_SUBCLASS(Category.X, "triggered data change violation", "27",
null, null),
/** 27001: triggered data change violation: modify table modified by data change delta table */
TRIGGERED_DATA_CHANGE_VIOLATION_MODIFY_TABLE_MODIFIED_BY_DATA_CHANGE_DELTA_TABLE(Category.X,
"triggered data change violation", "27", "modify table modified by data change delta table",
"001"),
/** 01000: warning */
WARNING_NO_SUBCLASS(Category.W, "warning", "01", null, null),
/** 0100D: warning: additional result sets returned */
WARNING_ADDITIONAL_RESULT_SETS_RETURNED(Category.W, "warning", "01",
"additional result sets returned", "00D"),
/** 0102F: warning: array data, right truncation */
WARNING_ARRAY_DATA_RIGHT_TRUNCATION(Category.W, "warning", "01", "array data, right truncation",
"02F"),
/** 0100E: warning: attempt to return too many result sets */
WARNING_ATTEMPT_TO_RETURN_TOO_MANY_RESULT_SETS(Category.W, "warning", "01",
"attempt to return too many result sets", "00E"),
/** 01001: warning: cursor operation conflict */
WARNING_CURSOR_OPERATION_CONFLICT(Category.W, "warning", "01", "cursor operation conflict",
"001"),
/** 0100B: warning: default value too long for information schema */
WARNING_DEFAULT_VALUE_TOO_LONG_FOR_INFORMATION_SCHEMA(Category.W, "warning", "01",
"default value too long for information schema", "00B"),
/** 01002: warning: disconnect error */
WARNING_DISCONNECT_ERROR(Category.W, "warning", "01", "disconnect error", "002"),
/** 01005: warning: insufficient item descriptor areas */
WARNING_INSUFFICIENT_ITEM_DESCRIPTOR_AREAS(Category.W, "warning", "01",
"insufficient item descriptor areas", "005"),
/** 01012: warning: invalid number of conditions */
WARNING_INVALID_NUMBER_OF_CONDITIONS(Category.W, "warning", "01", "invalid number of conditions",
"012"),
/** 01003: warning: null value eliminated in set function */
WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION(Category.W, "warning", "01",
"null value eliminated in set function", "003"),
/** 01007: warning: privilege not granted */
WARNING_PRIVILEGE_NOT_GRANTED(Category.W, "warning", "01", "privilege not granted", "007"),
/** 01006: warning: privilege not revoked */
WARNING_PRIVILEGE_NOT_REVOKED(Category.W, "warning", "01", "privilege not revoked", "006"),
/** 0100A: warning: query expression too long for information schema */
WARNING_QUERY_EXPRESSION_TOO_LONG_FOR_INFORMATION_SCHEMA(Category.W, "warning", "01",
"query expression too long for information schema", "00A"),
/** 0100C: warning: result sets returned */
WARNING_DYNAMIC_RESULT_SETS_RETURNED(Category.W, "warning", "01", "result sets returned", "00C"),
/** 01009: warning: search condition too long for information schema */
WARNING_SEARCH_CONDITION_TOO_LONG_FOR_INFORMATION_SCHEMA(Category.W, "warning", "01",
"search condition too long for information schema", "009"),
/** 0100F: warning: statement too long for information schema */
WARNING_STATEMENT_TOO_LONG_FOR_INFORMATION_SCHEMA(Category.W, "warning", "01",
"statement too long for information schema", "00F"),
/** 01004: warning: string data, right truncation */
WARNING_STRING_DATA_RIGHT_TRUNCATION_WARNING(Category.W, "warning", "01",
"string data, right truncation", "004"),
/** 44000: with check option violation */
WITH_CHECK_OPTION_VIOLATION_NO_SUBCLASS(Category.X, "with check option violation", "44", null,
null);
public final Category category;
public final String condition;
public final String klass;
public final String subCondition;
public final String subClass;
public final String code;
/** Alias for backwards compatibility with previous versions of SQL spec. */
public static final SqlState INVALID_SQL_STATEMENT =
INVALID_SQL_STATEMENT_IDENTIFIER_NO_SUBCLASS;
public static final Map BY_CODE;
static {
Map m = new HashMap<>();
for (SqlState s : values()) {
m.put(s.code, s);
}
BY_CODE = Collections.unmodifiableMap(m);
}
SqlState(Category category, String condition, String klass, String subCondition,
String subClass) {
this.category = category;
this.condition = condition;
this.klass = klass;
this.subCondition = subCondition;
this.subClass = subClass;
this.code = klass + (subClass == null ? "000" : subClass);
}
/** Validates the data, and generates the HTML table. */
private static void main(String[] args) {
PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(System.out, StandardCharsets.UTF_8)));
pw.println(" * ");
SqlState parent = null;
for (SqlState s : values()) {
assert s.klass.length() == 2;
assert s.subClass == null || s.subClass.length() == 3;
if (s.subClass == null) {
assert s.subCondition == null;
parent = s;
} else {
assert parent != null;
assert s.subCondition != null;
assert s.category == parent.category;
assert s.klass.equals(parent.klass);
assert s.condition.equals(parent.condition);
}
pw.println(" * ");
pw.println(" * " + (parent == s ? s.category : " ") + " ");
pw.println(" * " + (parent == s ? s.condition : " ") + " ");
pw.println(" * " + (parent == s ? s.klass : " ") + " ");
pw.println(" * " + (s.subCondition == null ? "(no subclass)" : s.subCondition)
+ " ");
pw.println(" * " + (s.subCondition == null ? "000" : s.subClass) + " ");
pw.println(" * ");
}
pw.println(" *
");
pw.close();
}
/** Severity types. */
enum Category {
/** Success (class 00). */
S,
/** Warning (class 01). */
W,
/** No data (class 02). */
N,
/** Exception (all other classes). */
X,
}
}
// End SqlState.java