我按如下方式执行存储过程:
var myOutput varchar2
exec myproc(:myOutput)
print myOutput
然而,这不起作用。
我收到一条错误消息:
Bind Variable "myOutput" is NOT DECLARED
当我在其他过程中使用递归而不是varchar2时,这是有效的。我做错了什么?
谢谢!
答案 0 :(得分:2)
所以你有这样的程序:
CREATE OR REPLACE PROCEDURE bark ( woof IN OUT VARCHAR2 )
IS
BEGIN
woof := 'Woof!';
END bark;
然后你跑:
SQL> var myOutput VARCHAR2(10)
SQL> exec bark(:myOutput);
PL/SQL procedure successfully completed.
SQL> print myOutput
MYOUTPUT
--------------------------------
Woof!
这与你想要做的相似吗?
答案 1 :(得分:2)
正是你正在运行的是什么?如果是这样,我认为问题是你没有指定myOutput
变量的大小。您需要这样做(根据您的需要调整长度):
SQL> var myOutput varchar2(40)