Текущее время: Пт, июл 11 2025, 03:34

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


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

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


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

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