开发者

Spring - Ingres RDBMS support in sql-error-codes.xml error code mapping file

I have a Java project connecting to an In开发者_如何学运维gres database and using the Spring Framework. This issue is related to the error codes list configuration.

According to Spring Framework API:

Class SQLErrorCodes: JavaBean for holding JDBC error codes for a particular database. Instances of this class are normally loaded through a bean factory.

Used by Spring's SQLErrorCodeSQLExceptionTranslator. The file "sql-error-codes.xml" in this package contains default SQLErrorCodes instances for various databases.

The default file is bundled in spring.jar, does not include error codes associated with Ingres RDBMS and it’s location is org/springframework/jdbc/support/sql-error-codes.xml

This document "Ingres 2006 SQL Reference Guide", in Appendix D: SQLSTATE Values and Generic Error Codes, contains the complete list of Ingres RDBMS error codes.

The only relevant sample of sql-error-codes.xml file containing Ingress error codes is this one:

Quote:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<!--
    - Default SQL error codes for well-known databases.
    - Can be overridden by definitions in a "sql-error-codes.xml" file
    - in the root of the class path.
    -
    - If the Database Product Name contains characters that are invalid
    - to use in the id attribute (like a space) then we need to add a property
    - named "databaseProductName"/"databaseProductNames" that holds this value.
    - If this property is present, then it will be used instead of the id for
    - looking up the error codes based on the current database.
    -->
<beans>
    <bean id="INGRES" class="org.springframework.jdbc.support.SQLErrorCodes">
        <property name="useSqlStateForTranslation">
            <value>true</value>
        </property>
        <property name="badSqlGrammarCodes">
            <value>22000,26000,42000,42500,42501,50000,5000A</value>
        </property>
        <property name="invalidResultSetAccessCodes">
            <value>24000</value>
        </property>
        <property name="dataIntegrityViolationCodes">
            <value>23500,23501,23502</value>
        </property>
        <property name="dataAccessResourceFailureCodes">
            <value>08001</value>
        </property>
        <property name="cannotAcquireLockCodes">
            <value>5000R</value>
        </property>
        <property name="cannotSerializeTransactionCodes">
            <value>40001</value>
        </property>
        <property name="deadlockLoserCodes">
            <value>40P01</value>
        </property>
    </bean>

</beans>

Can anyone suggest a more up-to-date and complete version?


The 9.3 SQLState codes can be obtained from docs.ingres.com. From speaking with the person who submitted the JIRA ticket there have been no further updates. Most errors are handled with the appropriate exception type. Similar to the PostgreSQL profile.


Extracted from the Ingres 9.3 documentation for you the SQL State Values and Generic Error Codes

Ingres 9.3 SQL Reference Guide - Appendix C: SQLSTATE Values and Generic Error Codes

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜