SQLException.getSQLState
recupera lo SQLState
per l'oggetto SQLException
. Quali sono tutti i possibili valori che possono essere restituiti con questo metodo? Posso usare il valore per identificare errori specifici che si sono verificati nel database (cioè questo valore può dirmi se si trattava di una violazione PK, o di un vincolo univoco, o di un valore di colonna elevato, ecc.)?Quali sono tutti i valori possibili per SQLException.getSQLState?
Inoltre, il metodo DatabaseMetaData.getSQLStateType()
dovrebbe indicare se il SQLSTATE
restituito da SQLException.getSQLState
è X/Open (ora noto come Open Group) SQL CLI o SQL99. L'unico valore possibile per questo dovrebbe essere DatabaseMetaData.sqlStateXOpen == 1
e DatabaseMetaData.sqlStateSQL99 == 2
ma sto ottenendo il valore 0
. Mi sto perdendo qualcosa?
Esiste un modo per determinare il tipo specifico di errore che si è verificato nel DB utilizzando combinazioni dai metodi sopra menzionati? Posso contare sui valori di SQLException.getSQLState
? Questi valori sono diversi dal provider DB al provider DB?
[Vedere anche questa risposta] (http://stackoverflow.com/a/1989469/521799) –