Выставление кодировки соединения Oracle 8

F0x

Новичок
Выставление кодировки соединения Oracle 8

Система:
Linux
Oracle 8.1.7
php5

NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET UTF8
NLS_RDBMS_VERSION 8.1.7.4.0

Все русскиесимволы отображаются вопросами, что, в принципе и понятно, поскольку БД в UTF8.
Конфиг оракула изменять нельзя, поскольку на сервере другие пользователи с уже устоявшимися настройками
Доступа к конфигу оракула нет. Попытка смены кодировки при выполнении выставлением переменной окружения путем putenv() в различных вариациях так же не помогло. В частности putenv("NLS_LANG='RUSSIAN_CIS.CL8MSWIN1251'");

Запросы ALTER SESSION NLS_CHARACTERSET = 'RUSSIAN_CIS.CL8MSWIN1251'1251' так же не помогают. Последний параметр oci_connect так же не поможет, поскольку база данных версии <9
 

tony2001

TeaM PHPClub
поставьте более нового клиента.

-~{}~ 23.08.06 16:46:

ну и с ним PHP пересоберите.
 

F0x

Новичок
Такой возможности к сожалению нет, за отсутствием доступа к начинке сервера
 

bigdaddy

Новичок
У меня та же проблема, что и у автора топика.... С той лишь разницей, что:
1. оракл версии 10
2. рнр5.2, собран с 10-м клиентом
3. есть возможность конфигурить сервер...
4. Пробовал выставлять кодировку в oci_connect, не помогло.

Вообще, после чтения доков по ораклу, в частности Globalization Support, пришел к выводу что:
1. Поля таблиц с символьными типами с приставкой N (NCHAR, NVARCHAR2 и тд) позволяют сохранять данные в "безопасной" кодировке - по умолчанию это UTF8...
2. Если правильно настроить сессию, то сервер должен корректно преобразовывать данные между сохраненной в базе кодировкой и кодировкой клиента.

Однако у меня все это получается только для sqlplus (командной строки)... То есть, если я выставляю соответствующие переменные окружения и вставляю данные (кирилличный текст) в поле с типом NVARCHAR2, то потом могу его в кириллице и вытащить... Если же я пытаюсь сделать это скриптом РНР, то увы...
Подскажите, что я не так понимаю или делаю?
 
Сверху