2011-08-24 8 views
5

Estoy intentando obtener Oracle sqlplus (10.2) para distribuir datos Unicode en una máquina Linux. He encontrado varias discusiones sobre este tema, pero no tengo respuestas claras, aparte de verificar la configuración regional y configurar NLS_LANG en AL32UTF8. Toda la información de configuración regional está configurada en "en_US.UTF-8", publicaré el resultado completo cuando se solicite.¿Cómo obtener SQLPlus para lanzar caracteres Unicode, se están produciendo como?

El sistema operativo (vi, etc.) reconocerá y aceptará los caracteres Unicode sin problema. Sin embargo, al usar sqlplus, todos los caracteres que no son ASCII se cambian a? caracteres. Oracle DB tiene NLS_CHARACTERSET establecido en AL32UTF8, y NLS_NCHAR_CHARACTERSET establecido en AL16UTF16.

¿Falto alguna configuración o interruptor que deba establecerse para el propio sqlplus? Cualquier idea será altamente apreciada.

Respuesta

11

Encontré la respuesta a esto. Aparentemente, la configuración de NLS_LANG (la configuración correcta es AMERICAS_AMERICA.AL32UTF8) en el script de shell no funciona. Hay que exporta:

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 
+0

Se supone que es: exportación NLS_LANG = AMERICAN_AMERICA.AL32UTF8 –

+0

¡Gracias! Corregido en consecuencia. –

+1

Estuve plagado por este problema por días. Funcionó muy bien en Windows, tanto en el símbolo del sistema como en los scripts de shells cygwin ... pero no en Linux. Después de exportar, todo funcionó :). Para mí también funcionaba en la versión no específica del lenguaje: export NLS_LANG = .AL32UTF8 –

0

Otra manera es tener la cosa NLS_LANG dentro de la secuencia de comandos de carrete, como una declaración sesión alter:

alter session set NLS_LANG='AMERICAS_AMERICA.AL32UTF8' 

Al establecer este valor sin export NLS_LANG no dejar que esta sqlplus acceso variable, solo después de exportar llega al entorno y está disponible para otros.

+0

Esto no funciona. NLS_LANG debe establecerse antes de iniciar sqlplus. – jramb

+0

Gracias. Verificará la configuración local y los scripts relacionados, hasta ahora me han funcionado. –

Cuestiones relacionadas