#oracle #stored-procedures #plsql #oracle-data-integrator
#Oracle #хранимые процедуры #plsql #oracle-data-integrator
Вопрос:
Я собираюсь вызвать хранимую процедуру PL SQL из ODI, которую я создал ранее. Для достижения этой цели, выполнив тщательный поиск по этому вопросу в Интернете, я обнаружил, что я должен выполнить следующие шаги:
- Создайте процедуру ODI.
- Поместите код
begin schema.myproc(with param) end;
в задачу этого. - Добавьте эту созданную процедуру в пакет ODI и запустите.
Итак, это:
begin
my_schema.procedure_name(20200701)
end;
Теперь, после выполнения всех вышеперечисленных шагов, возникает следующая ошибка, из-за которой я запутался, что делать, поскольку я не смог найти решение.
ODI-1228: Task Procedure-test-task1 fails on the target connection PHY_PARSDB.
Caused By: java.sql.SQLException: ORA-06550: line 3, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
:= . ( % ;
Итак, кто-нибудь может мне помочь с этой проблемой?
Ответ №1:
Вы забыли ;
Правильный код:
begin
my_schema.procedure_name(20200701);
end;
Комментарии:
1. можете ли вы помочь мне передать параметр упомянутой процедуре в приведенном выше блочном коде? Я имею в виду, что у меня будет переменная с именем date_key, инициализируйте ее, а затем используйте ее вместо доступной константы (20200701).
2. Извините, я не эксперт по ODI, возможно, вы найдете свой ответ в документации: docs.oracle.com/cd/E17904_01//integrate.1111/e12643 /. …
3.
#<PROJECT_CODE>.date_key
если это переменная проекта или#GLOBAL.date_key
глобальная переменная. Если вам нужна дополнительная информация, пожалуйста, создайте новый вопрос, чтобы будущий читатель также мог получить ответ.