sql >> Base de Datos >  >> RDS >> Oracle

Puesta en cola Oracle Unicode

con la configuración correcta, su secuencia de comandos funciona con SQL*Plus. Esto es lo que hice para probarlo:

  • (obviamente) su base de datos debe ser compatible con Unicode. Use NVARCHAR2 si es necesario.
  • Configure su aplicación cliente correctamente. asegúrese de que su variable NLS_LANG esté configurada correctamente, debe ser compatible con Unicode. Configuré el mío en AMERICAN_ENGLISH.UTF8 . Si bien la ventana DOS de SQL*Plus no mostrará todos los caracteres Unicode, se colocarán correctamente en el archivo.
  • (obviamente también) asegúrese de que la aplicación que lee el archivo en spool lo abra con el juego de caracteres correcto.

Ahora el guión:

SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';

PARAMETER          VALUE
------------------ ------
NLS_CHARACTERSET   UTF8

SQL> create table street_points (data varchar2(10));

Table created

SQL> INSERT INTO street_points VALUES (chr(53401)||chr(53398));

1 row inserted

Esto insertará los caracteres rusos ЙЖ

SQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF

El archivo, abierto con un editor de texto (jEdit en mi caso) con el juego de caracteres correcto (UTF-8) muestra los caracteres correctamente.