Oracle并发编程执行方法
Posted
技术标签:
【中文标题】Oracle并发编程执行方法【英文标题】:Oracle concurrent programming execution methods 【发布时间】:2012-03-20 07:51:59 【问题描述】:我在其下创建了一个包和存储过程来测试并发程序。当我将它作为 Oracle 报告可执行方法运行时。它工作正常。但是我将其更改为 PL/SQL 存储过程然后它给出了错误。
原因:FDPSTP 由于 ORA-06550 失败:第 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 作为文件名,将可执行文件作为包名。
【问题讨论】:
你应该发布相关的代码...... 【参考方案1】:当您创建要作为并发请求运行的打包过程时,您应该将可执行文件定义为 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 并发请求表单中显示成功或失败或错误:
【讨论】:
感谢您的回复,我做了您在这里提到的一切.. 更改了可执行文件名称和过程..首先我遇到了执行权限不足等错误。然后我授予许可。我仍然有这个问题。 @user361045 您不必更改可执行文件名称,我只是举个例子。在您的情况下,您的可执行文件名为“pop_rpt_tbl”。你在什么模式下创建了你的程序?应用?还是其他模式?如果您没有在 APPS 中创建您的过程,那么您将需要“GRANT EXECUTE ON pop_rpt_tbl TO APPS”。当您将可执行文件名列为“myschema.pop_rpt_tbl”时,您还应该指定架构名称。以上是关于Oracle并发编程执行方法的主要内容,如果未能解决你的问题,请参考以下文章