Можно ли установить разделитель группы десятичного числа в оракуле для каждой сессии? - PullRequest
0 голосов
/ 01 марта 2012

Чтобы изменить разделитель группы десятичного числа в Oracle, я использую

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';

Но ALTER SESSION означает, что это будет только для текущего соединения.Я пробовал только SET NLS_NUMERIC_CHARACTERS = '.,';, но не получил никакого эффекта и ALTER SYSTEM также не работал. Итак, вопрос: как установить NLS_NUMERIC_CHARACTERS для каждой сессии?

Спасибо.

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Лучший подход, вероятно, зависит от того, как вы вставляете свои данные - будь то операторы вставки SQL * Plus, SQL * Loader, внешние таблицы или что-то еще.

Если вы работаете в SQL * Plusзатем вы можете выполнить команду alter session автоматически при входе в систему, для себя только с профилем пользователя или с профилем сайта .

Если вы делаетемногие отдельные операторы вставки уже используют to_number, тогда для этого есть третий параметр , который позволяет вам устанавливать параметры NLS для каждой команды.Это звучит как болезненный способ сделать «вставку большого количества данных», и внесение поправок в существующие операторы может быть не слишком увлекательным, поскольку вам также придется добавить маску формата, если ее нет.

Кроме того, вы можете установить параметры NLS в вашей среде;Например, вы можете установить NLS_LANG с настройкой NLS_NUMERIC_CHARACTERS, которую вы хотите.Это, вероятно, предпочтительнее в целом, и будет применяться, если вы используете SQL * Loader для загрузки ваших данных;хотя я подозреваю, что это не так, и вы все равно можете использовать to_number в контрольном файле.

У некоторых клиентов есть другие способы настройки этого;Например, в SQL Developer есть раздел Database-> NLS.

Многое о NLS здесь .

0 голосов
/ 01 марта 2012

Похоже, что NLS_NUMERIC_CHARACTERS можно установить через файл параметров инициализации на уровне экземпляра. В следующем списке показано, что можно изменить на каком уровне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...