Методы выполнения параллельного программирования Oracle - PullRequest
0 голосов
/ 20 марта 2012

Я создал пакет и хранимую процедуру под ним для тестирования параллельной программы. Когда я запускаю его как исполняемый метод отчета Oracle. Работает нормально. Но я изменяю это на хранимую процедуру PL / SQL, тогда это дает ошибку.

Причина: сбой FDPSTP из-за ORA-06550: строка 1, столбец 7: PLS-00306: неверный номер или типы аргументов при вызове «pop_rpt_tbl» ORA-06550: строка 1, столбец 7: PL / SQL: оператор игнорируется

Он работает правильно в методе оракула. ​​

Есть идеи по этому вопросу.

This is my sp  
PROCEDURE pop_rpt_tbl (
      p_pro_id   IN       NUMBER,
      p_agr     IN        NUMBER,
      p_prd       IN       NUMBER,
      p_group_id     IN     NUMBER,
      x_api_status   OUT      VARCHAR2,
      x_api_msg      OUT      VARCHAR2
   ); 

Когда я выполнил это как PL / SQL, я дал имя пакета .pop_rpt_tbl в качестве имени файла и исполняемый файл в качестве имени пакета.

1 Ответ

2 голосов
/ 20 марта 2012

Когда вы создаете упакованную процедуру для запуска в качестве параллельного запроса, вы должны определить исполняемый файл как PL / SQL и указать schema.package.procedure в качестве имени исполняемого файла.

Далее, первые два аргумента вашей упакованной процедуры должны быть errbuf OUT VARCHAR2, retcode OUT NUMBER. Параллельный процесс ожидает этого; Ваши собственные аргументы должны следовать за этими первыми двумя. Таким образом, спецификация прототипа упакованной процедуры будет похожа на:

  PROCEDURE create_manual_batch (
    errbuf OUT VARCHAR2,
    retcode OUT NUMBER,
    p_part_id IN VARCHAR2,
    p_quote_line_id IN VARCHAR2,
    p_parent_id IN VARCHAR2 DEFAULT '0');

Вы можете использовать errbuf и recode в своем коде для отправки полезной информации в приложение. Вы можете передать строку сообщения об ошибке в errbuf, которая запишет в файл журнала, и вы можете установить код возврата в своей программе, чтобы он отображал успех, неудачу или ошибку в форме одновременного запроса EBS:

  • 0 = Обычный
  • 1 = Предупреждение
  • 2 = Ошибка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...