Текущее время: Вс, июл 20 2025, 23:30

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Кодовая страница для внешней БД
СообщениеДобавлено: Ср, сен 28 2005, 14:53 
Гость
Уважаемые коллеги!
Вопрос: установила соединение с внешней БД ORACLE и через EXEC SQL вызвала select, но возникла проблема с кодовой страницей. Может быть кто-то с этим сталкивался? Что делать?
Спасибо заранее.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 28 2005, 17:48 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Сталкивался с преобразованием кодовой страницы.
Начиная с 4.7 в системе есть три класса для работы с кодовыми страницами.
Здесь: Converting Data, а так же в хелпе по этим классам достаточно понятно написано.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 28 2005, 22:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
Bully написал(а):
Сталкивался с преобразованием кодовой страницы.
Начиная с 4.7 в системе есть три класса для работы с кодовыми страницами.
Здесь: Converting Data, а так же в хелпе по этим классам достаточно понятно написано.


ето если в Юникодовой системе = если нет - то никак - но скоро (в нотах написано) сделют чтобы в DBCO можно было кодировку прописывать


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 29 2005, 08:41 
Гость
Дело в том, что select возвращает строку с из одинаковых символов. Например, если в БД поле "Юрий" возвращается "ПППП".
Если запускаем TRANSLATE docum-a1 from code page '1500' TO CODE PAGE '1504'- получаем "ЯЯЯЯ".
Может быть есть у кого-нибудь какие-то идеи на этот счет?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 29 2005, 11:20 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, май 27 2005, 14:20
Сообщения: 310
Пол: Мужской
Вариат с EXEC SQL не проверял, но, вероятно, здесь та же история.
Во внешней БД у Вас, видимо, Win-кодировка, в САПовской ISO8859-5. Вероятно, Вы пробросили db-link между базами. Искажение идет на этом линке. Попробуйте выполнять во внешней БД преобразование в hex (до select'a).
p.s. Если я ошибся в предположениях, будем моделировать Вашу ситуацию на практике


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 29 2005, 11:44 
Гость
А подскажите как это сделать до selecta - я пишу в программе:

EXEC SQL.
open c1 for
select A1,A2 from scott.TANYA
ENDEXEC.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 29 2005, 15:24 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, май 27 2005, 14:20
Сообщения: 310
Пол: Мужской
Самый простой способ будет, видимо, такой (хотя вполне может быть и проще):

select func(A1), func(A2) from scott.TANYA

Здесь func - простая функция по преобразованию, скажем, varchar2 во что-то, не зависящее от кодировки. Например, в hex. Эта функция должна быть на внешней базе Oracle и c соответствующей прагмой.

Затем, когда данные будут во внутренней таблице их, соответственно, необходимо будет снова привести к текстовому виду, н-р xstring -> string. После этого может понадобиться перекодировка. Ее лучше выполнить классом cl_abap_conv_obj, т.к. translate устарел.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодовая страница для внешней БД  Тема решена
СообщениеДобавлено: Чт, сен 17 2009, 11:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Бъюсь с этой же проблемой, связь с внешней базой ORACLE.
Версия нашей системы 6.40.

В DBCO уже какие только кодировки не ставил, не вижу русских букв. Кто нибудь решил эту проблему?

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кодовая страница для внешней БД
СообщениеДобавлено: Пт, сен 18 2009, 19:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Parazit написал:
Бъюсь с этой же проблемой, связь с внешней базой ORACLE.
Версия нашей системы 6.40.
В DBCO уже какие только кодировки не ставил, не вижу русских букв. Кто нибудь решил эту проблему?


Проблема решилась именно настройками кодировок в DBCO.
Странно, почему сразу не получилось?!
То ли лыжи не едут...

Помогло:
1. транзакция st04m или нарпямую системная таблица oracle внешней базы V$NLS_PARAMETERS, поля:
- NLS_CHARACTERSET
- NLS_NCHAR_CHARACTERSET

2: тр. DBCO в поле "Инфо по соединению" пишем через двоеточие: <имя TNS>:<значение NLS_CHARACTERSET>:<значение NLS_NCHAR_CHARACTERSET>

Например:
Code:
Kuku:CL8ISO8859P5:AL16UTF16

Всё вышесказанное актуально для НЕ-юникодных систем и версии SAP от 6.40.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB