如何从命令行调用Oracle SQL存储过程?

3

我如何调用带参数的Oracle存储过程?

它有一个输入和一个输出参数,看起来像doSomething(IN x,OUT y);

我该如何从命令行调用它?

2个回答

6
假设使用SQL*Plus:
var v_result number
exec doSomething(42, :v_result);
print v_result

你可以将其放入SQL脚本中,并通过命令行传递给SQL*Plus。

/***********/我得到了以下错误信息第1行出现错误:ORA-06550: 第1行,第7列:PLS-00201: 标识符'doSomething'必须声明ORA-06550: 第1行,第7列:PL/SQL: 语句被忽略 V_1
V_2
- Anandhakrishnan
@Anandhakrishnan -- 首先输入 DESCRIBE doSomething 来确保该过程存在、可访问,并且具有您预期的签名。 - Dave Costa
1
也许输出变量的类型不正确--您没有告诉我们参数类型是什么。 - Dave Costa
doSomething(x IN NUMBER,y OUT VARCHAR2(100)); 是函数签名。 - Anandhakrishnan

3

试试这个

BEGIN
var v_outparam1 number;
var v_outparam2 number;
exec myProc(v_outparam1,v_outparam1);
END;
/

1
你不应该将这些行放在BEGIN/END块中--它们是SQLPlus命令,而不是PL/SQL语句。 - Dave Costa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接