Pregunta

Estoy usando una base de datos Oracle con una clasificación diferente al lenguaje de mi sistema operativo. Estoy accediendo a la base de datos usando el controlador ODBC. Cuando preparo una declaración (p. Ej., & Quot; select * from x where =? & Quot;), que involucra caracteres especiales no ASCII compatibles con la intercalación de la base de datos, encuentro la fila de datos con los caracteres. Cuando ejecuto la selección directamente con el argumento en la cadena sql, no se encuentra la fila de datos.

¿Fue útil?

Solución

Pura suposición de mi parte, pero puede ser porque su computadora cliente no está codificando la cadena sql con el argumento escrito correctamente. Creo que si su cliente está configurado en una configuración regional diferente a la intercalación de la base de datos, la matriz de caracteres que contiene la instrucción select que se envía a Oracle contendría "incorrecto". bytes donde se ubicaron los caracteres originales originales: Oracle los interpretaría como un carácter diferente al que envió originalmente (lo que hace que no se encuentre la fila).

¿Hay alguna razón por la que no puede usar el enfoque parametrizado (ya que funciona correctamente)? ??

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top