O conjunto de caracteres faz parte da localidade, que é determinada pelo valor de
NLS_LANG
. Como a documentação deixa claro, esta é uma variável do sistema operacional :
NLS_LANG
é definido como uma variável de ambiente em plataformas UNIX.NLS_LANG
é definido no registro em plataformas Windows.
Agora podemos usar
ALTER SESSION
para alterar os valores de alguns elementos de localidade, NLS_LANGUAGE e NLS_TERRITORY. Mas não, infelizmente, o conjunto de caracteres. A razão para essa discrepância é - eu acho - que o idioma e o território simplesmente afetam como o Oracle interpreta os dados armazenados, por exemplo, exibir uma vírgula ou um ponto ao exibir um número grande. Enquanto o conjunto de caracteres se preocupa com a forma como o aplicativo cliente renderiza os dados exibidos. Essas informações são coletadas pelo aplicativo cliente no momento da inicialização e não podem ser alteradas internamente.