我想運行一個存儲過程,有多個進出參數。該過程只能通過導航其他用戶|在我的「連接」面板中查看|包| | |在SQL Developer中運行存儲過程?
如果我右鍵單擊,菜單項是「Order Members By ...」和「Create Unit Test」(灰色)。用戶訪問該程序時,「運行」該程序的功能似乎不可行。
我一直在試圖找到一個如何創建一個匿名塊的例子,以便我可以作爲一個SQL文件運行過程,但還沒有找到任何可行的方法。
有誰知道我可以從SQL Developer中執行這個過程嗎?我正在使用版本2.1.1.64。
在此先感謝!
編輯1:
我想打電話的過程有這樣的簽名:
user.package.procedure(
p_1 IN NUMBER,
p_2 IN NUMBER,
p_3 OUT VARCHAR2,
p_4 OUT VARCHAR2,
p_5 OUT VARCHAR2,
p_6 OUT NUMBER)
如果我寫我喜歡這個匿名塊:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, :out1, :out2, :out3, :out4);
END;
我得到的錯誤:
Bind Varialbe "out1" is NOT DECLCARED
anonymous block completed
我已經試過初始化出*變量:
out1 VARCHAR2(100) := '';
,但得到了同樣的錯誤:
編輯2:
根據Alex的答案,我試圖消除由冒號在參數前面,並得到這個:
Error starting at line 1 in command:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, out1, out2, out3, out4);
END;
Error report:
ORA-06550: line 13, column 17:
PLS-00103: Encountered the symbol "USER" when expecting one of the following:
:= . (@ % ; immediate
The symbol ":=" was substituted for "USER" to continue.
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
[最好的方法/工具從oracle包過程中得到結果]的可能的重複(http://stackoverflow.com/questions/3526798/best-way-tool-to-get-the-results-from- an-oracle-package-procedure) – 2010-10-21 20:52:33
嘗試在過程執行語句之前將OUT變量放入BEGIN中。 – 2010-10-21 21:56:00
你不需要'execute';在PL/SQL中被解釋爲'execute immediate'的開始,這與SQL'execute'不同。 – 2010-10-21 22:08:41