![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
pirojok |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.11.2007 Репутация: нет Всего: нет |
Добрый день.
Нужна помощь, по работе с БД Oracle 10 из PERl. Делаю выборку из БД oracle средствами perl. Запрос следующий:
В результате поле komanda вместо названий на русском языке выдаёт квадратик. Причём сама выборка из perl делается не корректно, т.е. он фактически делает группировку по этому КВАДРАТИКУ(он во всех полях одинаковым получается). Вероятно проблема в переменных клиента, но в каких, понять не могу. При этом, в девелопере этот запрос отрабатывает корректно. Если не использовать REGEXP_REPLACE, то проблем нет. Русские символы отображаются корректно. Кусок кода отвечающий за выборку:
|
||||
|
|||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: нет Всего: 7 |
Что-то я не увидел где Вы указываете в какой кодировке будет общение с базой
Any data returned from Oracle to DBD::Oracle in the AL32UTF8 character set will be marked as UTF-8 to ensure correct handling by Perl. For Oracle to return data in the AL32UTF8 character set the NLS_LANG or NLS_NCHAR environment variable must be set as described in the previous section. When fetching NCHAR, NVARCHAR, or NCLOB data from Oracle, DBD::Oracle will set the Perl UTF-8 flag on the returned data if either NLS_NCHAR is AL32UTF8, or NLS_NCHAR is not set and NLS_LANG is AL32UTF8. When fetching other character data from Oracle, DBD::Oracle will set the Perl UTF-8 flag on the returned data if NLS_LANG is AL32UTF8. http://search.cpan.org/~pythian/DBD-Oracle...cle_and_Unicode Аналогично и для других кодировок, только нет заморочек с флагом utf8. |
|||
|
||||
pirojok |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.11.2007 Репутация: нет Всего: нет |
Спасибо за ответ.
Пробую вот так: my $dbh=DBI->connect($source,$user,$password,{PrintError=>0,AutoCommit=>0,RaiseError=>1, ora_charset => 'CL8MSWIN1251'}) результат тот же Может я не правильно вас понял? |
|||
|
||||
Pilat66 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 27.1.2009 Репутация: нет Всего: 1 |
может что-то типа
$ENV{NLS_LANG}="AMERICAN_AMERICA.UTF8"; |
|||
|
||||
pirojok |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.11.2007 Репутация: нет Всего: нет |
||||
|
||||
TTT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2007 Репутация: нет Всего: 1 |
Попробуй так:
$ENV{NLS_LANG} = "AMERICAN_AMERICA.CL8MSWIN1251"; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |