Рекомендации для принятого ответа немного устарели теперь.
Официальные документы, которые включают SQLStates, очевидно, можно приобрести по относительно высокой цене в ANSI и XOpen. Но в документации по большинству баз данных есть списки SQLStates. Вероятно, наиболее полные (и доступные) онлайн-списки находятся в руководствах по DB2. Посмотрите, например, руководство по универсальным сообщениям DB2 . Oracle (требуется пароль TechNet) и Sybase, среди прочих, также имеют онлайн-списки.
Что касается второго вопроса, это намерение SQLState, однако различные базы данных имеют разную степень соответствия. Например, некоторые сопоставляют несколько собственных сообщений об ошибках одному и тому же SQLState. Для общего использования, вероятно, следует сосредоточиться на основном коде (первые два символа SQLState), а затем определить, доступна ли более конкретная информация во второстепенном коде (за пределами 000.)
Это в некоторой степени зависит от драйвера JDBC. Кажется, существуют стандартные значения плюс некоторые собственные значения.
В качестве руководства к тому, что возможно, уровень JDBC Spring включает код ошибки SQL и преобразование состояний. Он предоставляет транслятор SQLState , который дает довольно расплывчатый перевод исключений, а также переводчик SQLErrorCode , который является более детализированным, с использованием известных проприетарных кодов ошибок.
Если вы можете Не используйте Spring, затем загрузите исходный код и извлеките файл sql-error-codes.xml
, который содержит сопоставление кодов с типами исключений.