jueves, 19 de febrero de 2009

Character Set en SqlPlus de Windows en Español

Hasta que no empecé este blog, nunca me había preocupado por tener el characterset correcto en mi sesión de sqlplus en DOS.


SQL> commit;

Confirmaci¾n terminada.


El caracter ¾ debería en realidad ser "ó". lo primero que intenté fue cambiar el characterset a lo que generalmente pudiera usar en un sistema linux.


C:\oracle\product\10.2.0\BIN>set NLS_LANG=SPANISH_AMERICA.WE8ISO8859P1

SQL> commit;

Confirmaci¾n terminada.

C:\oracle\product\10.2.0\BIN>set NLS_LANG=SPANISH_AMERICA.UTF8

SQL> commit;

Confirmaci├│n terminada.


Como nada de esto funcionó, lo primero fue averiguar lo que realmente estaba usando como characterset:


C:\oracle\product\10.2.0\database>echo %NLS_LANG%
%NLS_LANG%

SQL> @.[%NLS_LANG%].
SP2-0310: no se ha podido abrir el archivo ".[SPANISH_SPAIN.WE8MSWIN1252]..sql"


La línea de comando en windows (DOS) no usa los códigos de página Western European, por lo cual debemos de obtener el código que se usa realmente. 

Para eso windows tiene la utilería chcp


C:\oracle\product\10.2.0\BIN>chcp
Tabla de códigos activa: 850



Con esta información, podemos buscar el characterset correcto en la siguiente lista:


MS-DOS code page Oracle Client character set (3rd part of NLS_LANG)
437 US8PC437
737 EL8PC737
850 WE8PC850
852 EE8PC852
857 TR8PC857
858 WE8PC858
861 IS8PC861
862 IW8PC1507
865 N8PC865
866 RU8PC866

C:\oracle\product\10.2.0\BIN>set NLS_LANG=SPANISH_AMERICA.WE8PC850

SQL> commit;

Confirmación terminada.

No hay comentarios:

Publicar un comentario