Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Хранение значения кодировки базы данных  [new]
TRust
Member

Откуда: из самоизоляции
Сообщений: 286
Господа!
Знает ли кто какой-то более быстрый способ выяснить кодировку базу данных, помимо
Select Value from nls_database_parameters where PARAMETER='NLS_CHARACTERSET'

В идеале, неплохо было бы один раз при старте считать это значение для последующего частого использования его в многочисленных сессиях при преобразовании
Convert(String,charset,'AL32UTF8')
где charset - это как раз кодировка базы данных
3 авг 09, 15:46    [7491394]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
Elic
Member

Откуда:
Сообщений: 29991
TRust
более быстрый
Неужели так медленно? :)
sys_context('userenv','language')
dbms_utility.get_parameter_value
TRust
В идеале, неплохо было бы один раз при старте считать это значение для последующего частого использования его в многочисленных сессиях
Пакетные переменные?! :)
3 авг 09, 16:02    [7491495]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
TRust
Member

Откуда: из самоизоляции
Сообщений: 286
Elic
TRust
более быстрый
Неужели так медленно? :)
sys_context('userenv','language')

Предложенный тобой способ быстрее более чем на порядок. Уже не плохо. Спасибо.
Это действительно кодировка базы, а не клиента?
Elic


TRust
В идеале, неплохо было бы один раз при старте считать это значение для последующего частого использования его в многочисленных сессиях
Пакетные переменные?! :)

Бесполезны, так как работает множество сессий, через которые много раз выполняются функции посредством mod pl/sql Апача, который сбрасывает пакетные переменные перед генерацией каждой страницы.
3 авг 09, 17:25    [7492008]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
Elic
Member

Откуда:
Сообщений: 29991
TRust
Это действительно кодировка базы, а не клиента?
Да. 158577.1. 4.2.2.note
TRust
Бесполезны, так как работает множество сессий, через которые много раз выполняются функции посредством mod pl/sql Апача, который сбрасывает пакетные переменные перед генерацией каждой страницы.
Значение используется единожды за вызов? :)
3 авг 09, 17:59    [7492206]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
TRust
..Бесполезны, так как работает множество сессий, через которые много раз выполняются функции посредством mod pl/sql Апача, который сбрасывает пакетные переменные перед генерацией каждой страницы.

гы..
ну ~свою таблицу/матвью зафигачте, as
select тот sys_context('userenv','language') ну и еще - что там вам такого надо
3 авг 09, 18:04    [7492228]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
TRust
Member

Откуда: из самоизоляции
Сообщений: 286
Elic
Значение используется единожды за вызов? :)
Да.

А вообще, очень не хватает в оракле общих для всех сессий переменных...
3 авг 09, 18:20    [7492293]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
TRust
..А вообще, очень не хватает в оракле общих для всех сессий переменных...

нутк глобальные контексты -- суть тоё и есть
3 авг 09, 18:41    [7492353]     Ответить | Цитировать Сообщить модератору
 Re: Хранение значения кодировки базы данных  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1317
orawish
TRust
..А вообще, очень не хватает в оракле общих для всех сессий переменных...

нутк глобальные контексты -- суть тоё и есть
+1
CREATE [ OR REPLACE ] CONTEXT namespace
  USING [ schema. ] package
  [ INITIALIZED { EXTERNALLY | GLOBALLY }
  | ACCESSED GLOBALLY
  ] ;
ACCESSED GLOBALLY - ваш вариант
3 авг 09, 19:01    [7492410]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить