我有这个密码:
set serveroutput on;
CREATE OR REPLACE PROCEDURE myProc(
id IN NUMBER,
optional_txt IN VARCHAR2 DEFAULT NULL,
random_pct OUT NUMBER
)
IS BEGIN
random_pct := 101;
END myProc;
我只想使用如下所示的必需输入参数(id)调用此过程:
myProc(id, random_pct);
但是我得到这个错误: PLS-00306: wrong number or types of arguments in call to 'myProc'
如果我删除output参数,它可以正常工作,如下所示:
set serveroutput on;
CREATE OR REPLACE PROCEDURE myProc(
pn_random_id IN NUMBER,
pn_optional_txt IN VARCHAR2 DEFAULT NULL
)
IS BEGIN
dbms_output.put_line('Proc created.');
END myProc;
(我这样称呼):
myProc(id);
如果我也需要输出参数,我如何使这项工作?
2条答案
按热度按时间64jmpszr1#
一个函数而不是一个过程是更好的解决方案。但您可以使用原始过程,仅使用这两个参数进行调用。但是您需要更改对命名参数的调用,而不是位置参数。
kknvjkwl2#
创建函数而不是过程
比你能说的还多