NLS_CHARACTERSET в сессии

blackmac
Дата: 01.03.2007 19:23:53
Добрый день
как определить кодировку NLS_CHARACTERSET в сессии ?
в NLS_SESSION_PARAMETERS ее нет

собственно есть некое приложение, под win32
которое должно записывать в базу данных текстовую информацию

брать строку NLS_LANG из реестра не хочется, т к сильно зависит от версии клиента, а она может быть 8-10, и хранится в различных ветках реестра.
orawish
Дата: 01.03.2007 19:26:40
DBMS_SESSION.SET_NLS
SQL*Plus
Дата: 01.03.2007 19:29:33
Для старта "некого приложения под win32" создать командный файл,
в котором будет устанавливаться переменная NLS_LANG

SET NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
"некое приложения под win32".exe
SQL*Plus
Дата: 01.03.2007 19:32:22
orawish
DBMS_SESSION.SET_NLS
Уже стало возможным динамическое изменение кодировки клиентской сессии?
Elic
Дата: 01.03.2007 19:40:45
Парни, а счего вы решили, что "определить" и "брать" = "установить", а не "узнать"? :)
orawish
Дата: 01.03.2007 19:52:01
SQL*Plus
orawish
DBMS_SESSION.SET_NLS
Уже стало возможным динамическое изменение кодировки клиентской сессии?

Был неправ (почти совсем )
конечно, на клиенте это надо делать -
(соответственно про пакет- мимо кассы ;) но переменную окружения
можно вполне выставить (кто умеет:) и непосредственно внутри программы
Напр. (в тикле) - так
 set env(NLS_LANG) AMERICAN_CIS.UTF8
blackmac
Дата: 01.03.2007 19:53:47
orawish
SQL*Plus
orawish
DBMS_SESSION.SET_NLS
Уже стало возможным динамическое изменение кодировки клиентской сессии?

Был неправ (почти совсем )
конечно, на клиенте это надо делать -
(соответственно про пакет- мимо кассы ;) но переменную окружения
можно вполне выставить (кто умеет:) и непосредственно внутри программы
Напр. (в тикле) - так
 set env(NLS_LANG) AMERICAN_CIS.UTF8


а посмотреть то как ?
orawish
Дата: 01.03.2007 19:54:09
Elic
Парни, а счего вы решили, что "определить" и "брать" = "установить", а не "узнать"? :)
Чисто из интуитивного анализа исходного поста
orawish
Дата: 01.03.2007 20:06:38
blackmac
orawish
..
Напр. (в тикле) - так
 set env(NLS_LANG) AMERICAN_CIS.UTF8


а посмотреть то как ?


Посмотреть - так, как ваша клиентская среда смотрит переменные окружения
У меня -
 set env(NLS_LANG)
Только, имхо, смотреть - не надо..
Elic
Дата: 01.03.2007 20:25:31
blackmac
а посмотреть то как ?
SQL> select sys_context('userenv', 'LANGUAGE') from dual;

SYS_CONTEXT('USERENV','LANGUAGE')
------------------------------------------------------------------------------------
AMERICAN_AMERICA.CL8MSWIN1251

1 row selected.

SQL> select * from v$nls_parameters where parameter like '%CHARACTERSET';

PARAMETER                                                        VALUE
---------------------------------------------------------------- -------------------
NLS_CHARACTERSET                                                 CL8MSWIN1251
NLS_NCHAR_CHARACTERSET                                           AL16UTF16

2 rows selected.


orawish
Elic
Парни, а счего вы решили, что "определить" и "брать" = "установить", а не "узнать"? :)
Чисто из интуитивного анализа исходного поста
Как видишь, интуиция тебя (и не только) подвела :)