Estamos construyendo una aplicación Java respaldada por una base de datos Oracle a la que accedemos usando JDBC (controladores ojdbc6.jar
y orai18n.jar
). El esquema de la base de datos almacena columnas de texto principalmente utilizando el tipo de datos NVARCHAR2
.¿Debo utilizar JDBC getNString() en lugar de getString()?
El JDBC documentation para el JDBC ResultSet
dice que getNString()
está destinado particularmente para su uso con el NCHAR, NVARCHAR etc. tipos de datos, pero por el momento sólo estamos usando getString()
.
Esto parece funcionar bien, así que me pregunto por qué debería usar getNString()
en lugar de getString()
. ¿getString()
va a comenzar a fallar si se ingresan caracteres que no son ASCII, o es el controlador JDBC de Oracle indiferente en cuanto a qué método debo usar?
EDITAR: Parece que puede depender de la base de datos: SQL Server doesn't seem to mind which you use, dependiendo de los parámetros de conexión. ¿Alguien tiene información específica sobre Oracle?
Sugiero que agregue esa prueba a su suite de regresión en caso de que cambie en las versiones futuras de Oracle o Java – artbristol
@artbristol - esa es una muy buena idea. Incluso un cambio en la configuración de Oracle podría causar una regresión (aunque no tengo motivos para creer eso, excepto por la experiencia con la configuración de Oracle) – Gnat