我執行一個存儲過程如下: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