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? Являются ли эти значения разными от поставщика БД до поставщика БД?