我执行一个存储过程如下:Oracle存储过程 - 打印VARCHAR2输出变量
var myOutput varchar2
exec myproc(:myOutput)
print myOutput
但是,这是行不通的。
我得到一个错误消息说:
Bind Variable "myOutput" is NOT DECLARED
当我使用一个refcurser而不是其他特效一个VARCHAR2,这个工程。我究竟做错了什么?
谢谢!
我执行一个存储过程如下:Oracle存储过程 - 打印VARCHAR2输出变量
var myOutput varchar2
exec myproc(:myOutput)
print myOutput
但是,这是行不通的。
我得到一个错误消息说:
Bind Variable "myOutput" is NOT DECLARED
当我使用一个refcurser而不是其他特效一个VARCHAR2,这个工程。我究竟做错了什么?
谢谢!
所以,你有这样一个过程:
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!
这是类同你正在尝试做什么?
难道是究竟是你在跑什么?如果是这样,我认为问题是你没有指定你的myOutput
变量的大小。你需要这样做(调节距离根据您的具体需求):
SQL> var myOutput varchar2(40)
给我两个错误。首先一个关于myoutput的错误是我在执行proc时声明的,然后同样的错误在上面。 – kralco626
抱歉,我在编写答案时做了一些假设。我将编辑原始帖子。 – roartechs