我在其下创建了一个包和存储过程来测试并发程序。当我将它作为Oracle报告可执行方法运行时。它工作正常。但我将其更改为PL / SQL存储过程然后它会给出错误。
原因:由于ORA-06550导致FDPSTP失败:第1行第7列:PLS-00306: 调用'pop_rpt_tbl'ORA-06550时参数的数量或类型错误: 第1行第7列:PL / SQL:忽略语句
它在oracle报告方法中正常工作。
关于这个问题的任何想法。
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作为文件名,将可执行文件作为包名称。
答案 0 :(得分:2)
当您创建要作为并发请求运行的打包过程时,应将可执行文件定义为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
,该字符串将写入日志文件,您可以在程序中设置retcode以显示EBS Concurrent Request表单中的成功或失败或错误: