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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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