Stiamo costruendo un'applicazione Java supportata da un database Oracle a cui accediamo tramite JDBC (driver ojdbc6.jar
e orai18n.jar
). Lo schema del database memorizza le colonne di testo utilizzando principalmente il tipo di dati NVARCHAR2
.Dovrei usare JDBC getNString() invece di getString()?
Il JDBC documentation per JDBC ResultSet
dice che getNString()
è particolarmente indicata per l'uso con il NCHAR, NVARCHAR tipi di dati, ecc, ma al momento ci sono solo utilizzando getString()
.
Questo sembra funzionare bene, quindi mi chiedo perché dovrei usare getNString()
anziché getString()
. getString()
inizia a non funzionare se vengono immessi caratteri non ASCII oppure il driver JDBC Oracle è indifferente sul metodo da utilizzare?
MODIFICA: Sembra che possa essere dipendente dal database: SQL Server doesn't seem to mind which you use, in base ai parametri di connessione. Qualcuno ha qualche informazione specifica su Oracle?
Suggerisco di aggiungere questo test alla suite di regressione nel caso in cui cambi nelle versioni future di Oracle o Java – artbristol
@artbristol - questa è un'ottima idea. Anche un cambiamento nella configurazione di Oracle potrebbe potenzialmente causare una regressione (anche se non ho motivo di credere che tranne per esperienza con la configurazione di Oracle) – Gnat