SQLException.getSQLState
извлекает SQLState
для объекта SQLException
. Каковы все возможные значения, которые могут быть возвращены этим методом? Могу ли я использовать значение для определения конкретных ошибок, которые были обнаружены в базе данных (т.е. Может ли это значение сказать мне, было ли это нарушение PK или уникальное ограничение или значение столбца для больших и т.д.)?
Кроме того, предполагается, что метод DatabaseMetaData.getSQLStateType()
указывает, возвращает ли SQLState
, возвращаемый SQLException.getSQLState
, X/Open (теперь называемый Open Group) SQL CLI или SQL99. Единственное возможное значение для этого должно быть DatabaseMetaData.sqlStateXOpen == 1
и DatabaseMetaData.sqlStateSQL99 == 2
, но я получаю значение 0
. Я что-то пропустил?
Есть ли способ определить конкретный тип ошибки, который произошел в БД, используя комбинации из вышеупомянутых методов? Могу ли я рассчитывать на значения SQLException.getSQLState
? Являются ли эти значения разными от поставщика БД до поставщика БД?