Tenho um grande conjunto de arquivos com comandos SQL que executo com um script SQL*Plus que usa o @@
operador. Eu executo o script em computadores de terceiros (ou até mesmo o envio por e-mail), então gostaria de torná-lo o mais independente possível.
Os arquivos são codificados como Win-1252. Atualmente, preciso definir a NLS_LANG
variável de ambiente antes de executar o script:
C:\> SET NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252
C:\> echo exit | sqlplus foo/bar@//example.com/xe @install.sql
Isso funciona, mas gostaria de saber se é possível alterar a codificação do cliente com um comando SQL ou SQL*Plus. (Ou pelo menos leia o valor e interrompa a execução se não corresponder.)
NLS_LANG
não pode ser alterado dentro de uma sessão, porém outras configurações podem.Você não pode alterar o conjunto de caracteres depois que uma conexão com o banco de dados foi estabelecida (ou seja: a 2ª parte de
NLS_LANG
), mas pode alterar o idioma com:... e o território com: