Текущее время: Пт, мар 29 2024, 13:36

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, окт 20 2011, 14:54 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 20 2011, 14:31
Сообщения: 8
Откуда: Москва
Пол: Женский
Добрый день!
Задача - перекидывать данные из веб-сервиса в оракл через PI.
НО парсинг в PI делать не хотят - через PI нужно просто опрокидывать данные в BLOB параметр процедуры в ORACLE.

Вариант с парсингом в PI и insert' ами из PI в Oracle для меня прозрачен и понятен.
А как отправить то, что я получаю из веб-сервиса в параметр процедуры?
(Парсинг и последующая обработка происходит в этой процедуре).

Подскажите, пожалуйста, как описать в PI вызов процедуры отправляющей в один параметр фактически xml-файл .

По идее нужно использовать такой формат сообщений:
<StatementName5>
<storedProcedureName action=” EXECUTE”>
<table>realStoredProcedureeName</table>
<param1 [isInput=”true”] [isOutput=true] type=SQLDatatype>val1</param1>
</storedProcedureName >
</StatementName5>

Нужно просто описать тип данных веб-сервиса как один параметр и закинуть его в в один параметр процедуры?

_________________
ABAP, HR, PI


Последний раз редактировалось pi_user Вт, ноя 01 2011, 10:27, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, окт 20 2011, 16:27 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
я блобы в оракл засовывал с помощью хранимой процедуры, но приходилось дробить на вызовы по 32К (больше в параметры процедуры типа VARCHAR2 не влазит).
Потом в хелпе увидел что есть спец.обработка блобов в параметре SP: http://help.sap.com/saphelp_nwpi711/hel ... ameset.htm .

Ещё вариант генерить NativeSQL и там кусочками добавлять ;-)

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, окт 20 2011, 16:33 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
а так, в целом по задаче -- брать входящий Payload, представлять его в Base64 и формировать вызов хранимой процедуры. Достаточно просто, но придётся восемь строк на джаве написать.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, окт 20 2011, 17:17 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 20 2011, 14:31
Сообщения: 8
Откуда: Москва
Пол: Женский
Большое спасибо за ответ.

Получается, что параметр типа BLOB в процедуру и не передашь:
The following SQL data types are supported: INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (output only),CLOB (output only).

Т.е. Вы вызывали нужное количество раз хранимую процедуру с input параметром типа VARCHAR2 и записывали в поле типа BLOB таблицы БД?

chumpa написал:
но придётся восемь строк на джаве написать.

чтобы в цикле вызывать процедуру и передавать по кусочкам будущий BLOB?

chumpa написал:
Потом в хелпе увидел что есть спец.обработка блобов в параметре SP

SP = stored procedure?
А какой именно параметр?
<storedProcedureName action=” EXECUTE”>
<table>realStoredProcedureeName</table>
<param1 [isInput=”true”] [isOutput=true] type=SQLDatatype>val1</param1>
</storedProcedureName >

_________________
ABAP, HR, PI


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, окт 20 2011, 17:34 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
о, точно, output only. Значит я не зря писал обёртку.
Да, делал свою SP (stored procedure) и вызывал её 10 раз например, для последнего раза ставил какой-нибудь параметр FINISH и по нему писал в БД, а все предыдущие вызовы в глобальной переменной в заголовке пакета накапливал. Сессия одна => путаницы и потерь не будет.

Да, цикл для покусочковой передачи.

Парамтер -- такой, какую SP создадите вы или коллеги из оракловой группы.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE  Тема решена
СообщениеДобавлено: Пн, окт 31 2011, 12:35 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, сен 25 2007, 13:27
Сообщения: 45
Откуда: Москва, АНТ-Информ (Газпром)
Пол: Мужской
BLOB может быть как IN, так и OUT.
В XML BLOB данные кодируется так - каждый байт - 8 бит = 4 + 4. Каждая 4-ка бит кодируется HEX символом, т.е. цифрой из шестнадцатеричного представления. <filebody>D0CF11E0A1B....</filebody>
Выборка BLOB проверена на MSSQL, загрузка блоба в базу проверена на Oracle, PI 7.0 и 7.11

_________________
Ерин Саня: А я напишу свой SAP ...с блэкджеком и шлюх*ми


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: web-service -> PI -> параметр типа BLOB в процедуре в ORACLE
СообщениеДобавлено: Чт, ноя 03 2011, 13:11 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 20 2011, 14:31
Сообщения: 8
Откуда: Москва
Пол: Женский
Всё заработало: кидаю большой кусок в параметр CLOB процедуры из поля типа string, он полностью проходит, ошибок нет.
Странная ссылка со справкой - в одном месте написано, что CLOB - output only, в другом - input + output,
в результате input CLOB всё-таки работает.

_________________
ABAP, HR, PI


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

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


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

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


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

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