SQLException.getSQLState
recupera el SQLState
para el objeto SQLException
. ¿Cuáles son todos los valores posibles que puede devolver este método? ¿Puedo usar el valor para identificar errores específicos ocurridos en la base de datos (es decir, puede este valor decirme si fue una violación de PK, o una restricción única, o un valor de columna a grande, etc.)?¿Cuáles son todos los valores posibles para SQLException.getSQLState?
Además, se supone que el método DatabaseMetaData.getSQLStateType()
indica si el SQLSTATE
devuelto por SQLException.getSQLState
es X/Open (ahora conocido como Open Group) SQL CLI o SQL99. El único valor posible para esto debería ser DatabaseMetaData.sqlStateXOpen == 1
y DatabaseMetaData.sqlStateSQL99 == 2
pero obtengo el valor 0
. ¿Me estoy perdiendo de algo?
¿Hay alguna manera de poder determinar el tipo específico de error que ocurrió en el DB usando combinaciones de los métodos mencionados anteriormente? ¿Puedo contar con los valores de SQLException.getSQLState
? ¿Son estos valores diferentes del proveedor de DB al proveedor de DB?
[Vea también esta respuesta] (http://stackoverflow.com/a/1989469/521799) –