0

Ingresデータベースに接続してSpringFrameworkを使用しているJavaプロジェクトがあります。この問題は、エラーコードリストの構成に関連しています。

Spring Framework APIによると:

クラスSQLErrorCodes:特定のデータベースのJDBCエラーコードを保持するためのJavaBean。このクラスのインスタンスは通常、Beanファクトリを介してロードされます。

SpringのSQLErrorCodeSQLExceptionTranslatorによって使用されます。このパッケージのファイル「sql-error-codes.xml」には、さまざまなデータベースのデフォルトのSQLErrorCodesインスタンスが含まれています。

デフォルトのファイルはspring.jarにバンドルされており、Ingres RDBMSに関連付けられたエラーコードは含まれていません。その場所は、org/springframework/jdbc/support/sql-error-codes.xml

このドキュメント「Ingres2006SQLリファレンスガイド」の付録D:SQLSTATE値と一般的なエラーコードには、IngresRDBMSエラーコードの完全なリストが含まれています。

Ingressエラーコードを含むsql-error-codes.xmlファイルの唯一の関連サンプルは次のとおりです

引用:

<?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>

誰かがより最新で完全なバージョンを提案できますか?

4

2 に答える 2

1

9.3 SQLStateコードは、docs.ingres.comから入手できます。JIRAチケットを提出した人と話すことから、それ以上の更新はありません。ほとんどのエラーは、適切な例外タイプで処理されます。PostgreSQLプロファイルに似ています。

于 2009-10-28T15:32:06.593 に答える
0

Ingres 9.3 ドキュメントから抽出された SQL 状態値と一般的なエラー コード

Ingres 9.3 SQL リファレンス ガイド - 付録 C: SQLSTATE 値と一般的なエラー コード

于 2009-10-28T14:21:12.943 に答える