所以我有这个有趣的情况。我有一个PL / SQL过程,我传递两个IN参数和两个OUT参数:
PROCEDURE p_merge_catalog(p_merge_from_code VARCHAR2,
p_merge_to_code VARCHAR2,
msg_type_out OUT VARCHAR2,
msg_out OUT VARCHAR2)
IS
.
.
我的难题是我正在使用作业提交/调度程序来调用似乎不处理OUT变量的过程。我无法将变量绑定到OUT参数;它只传递价值。有没有办法在不指定OUT参数的情况下调用此过程?或者也许欺骗它并使用某种隐藏变量?
答案 0 :(得分:1)
两个outs
不是很漂亮,但是工作;)
CREATE OR REPLACE FUNCTION f_merge_catalog_wrapper (
p_merge_from_code VARCHAR2,
p_merge_to_code VARCHAR2)
RETURN emp%ROWTYPE
IS
msg_type_out VARCHAR2(2000);
msg_out VARCHAR2(2000);
BEGIN
p_merge_catalog_wrapper(p_merge_from_code, p_merge_to_code, msg_type_out, msg_out);
return msg_type_out || '@' || msg_out;
END;
没有检查拼写错误。但机制应该清楚:o)。
如果您不需要输出:
CREATE OR REPLACE PROCEDURE p_merge_catalog_wrapper (
p_merge_from_code VARCHAR2,
p_merge_to_code VARCHAR2)
RETURN emp%ROWTYPE
IS
msg_type_out VARCHAR2(2000);
msg_out VARCHAR2(2000);
BEGIN
p_merge_catalog_wrapper(p_merge_from_code, p_merge_to_code, msg_type_out, msg_out);
END;