Адаптер БД с хранимой процедурой в OSB
Ценю, если кто-нибудь поможет мне с этим.
Я хочу выбрать запись из БД, используя адаптер БД в OSB, и для этого я написал хранимую процедуру в Oracle, как показано ниже:
create or replace
PROCEDURE TRY_POC(ERROR_STATUS IN varchar2,TYPE_ERROR IN varchar2,ERROR_TIMESTAMP IN varchar2,p_cur out sys_refcursor) IS
BEGIN
open p_cur for
select * from CommonLogTable where STATUS=ERROR_STATUS
and ERROR_TYPE=TYPE_ERROR
and
to_date(
(
substr(Error_Timestamp,9,2)||'-'||
substr(Error_Timestamp,6,2)||'-'||
substr(Error_Timestamp,1,4)||' '||
substr(Error_Timestamp,12,2)||':'||
substr(Error_Timestamp,15,2)||':'||
substr(Error_Timestamp,18,2)
),'DD-MM-YYYY HH24:MI:SS') < to_date(to_char(current_timestamp,'DD-MM-YYYY HH24:MI:SS'),'DD-MM-YYYY HH24:MI:SS')
AND to_date(
(
substr(Error_Timestamp,9,2)||'-'||
substr(Error_Timestamp,6,2)||'-'||
substr(error_timestamp,1,4)||' '||
substr(Error_Timestamp,12,2)||':'||
substr(Error_Timestamp,15,2)||':'||
substr(Error_Timestamp,18,2)
),'DD-MM-YYYY HH24:MI:SS') >= to_date(to_char(current_timestamp-(5 * (1/24/60)),'DD-MM-YYYY HH24:MI:SS'),'DD-MM-
YYYY HH24:MI:SS');
end TRY_POC;
Что делает эта хранимая процедура, так это то, что она извлекает записи из CommonLoTable на основе Status,Error_Type и Error_Timestamp(которые будут переданы во время выполнения), и извлекает записи, которые находятся между
Текущая временная метка = Текущая временная метка-5 И требуемый мне формат временной метки: 2016-08-13T16:30:00.
Я хочу передать значения всех Error_Type,Status и Error_Timestamp во время выполнения. Я не могу передать значение Error_Timestamp во время выполнения из OSB .
Заранее спасибо
1 ответ
Вы можете использовать функцию xquery execute-sql() в конвейере и вызывать ваши операторы sql. Входные параметры могут быть приняты во время выполнения от прокси-службы, а затем сопоставить эти значения с параметрами условия запроса SQL.