2017-05-09 200 views
0

測試功能這是我的函數:在PL/SQL開發人員

FUNCTION GET(V_IN IN NUMBER) RETURN VARCHAR2 AS 
    V_OUT VARCHAR2(1000); 
BEGIN 
    function body 
END; 

我用鼠標右鍵單擊該功能,然後點擊測試,我得到以下幾點:

begin 
    -- Call the function 
    :result := pkg.get(V_IN => :V_IN); 
end; 

我如何用這個變量V_IN替代一個值?我需要測試它的一個數字,說940

當我嘗試代碼:

declare 
    r varchar2(2000); 
begin 
    -- Call the function 
    r := pkg.get(940); 
end; 

我得到一個錯誤:

ORA-01036: illegal variable name/number 

Can you suggest various ways of calling this function?

PS:使用 工具:PL/SQL Developer全能自動化。版本8.0.1.1502

Oracle數據庫11g企業版

+0

哪些是您使用的工具:PL/SQL開發人員從全能化自動化控制系統,或從Oracle SQL Developer中? –

+0

來自Allround Automations的PL/SQL Developer。 – Natty

回答

1

一旦你點擊了你的功能並在上下文菜單中點擊了Test,測試窗口就會顯示出你所顯示的代碼。該窗口中有兩個窗格 - 頂部窗格顯示PL/SQL Developer爲調用該函數而生成的代碼,下部窗格包含函數的參數列表。在測試窗口的下部窗格中,有三列的函數參數列表 - 變量,類型和值。使用參數名稱在所需行中輸入值,然後單擊Start Debugger按鈕(測試窗口左上角的'Test Script'選項卡名稱下),然後單擊Run按鈕(立即在「開始調試器」按鈕的右側)。

祝你好運。

+0

這完全是**我期待從noobie的鞋子。非常感謝,但我已經通過一些自我研究瞭解了自己。 – Natty

1

"How do I substitute a value for this variable V_IN? I "

當您在PLSQL開發者測試的測試窗口的底部窗格是所有的替代變量屬性列表。您可以定義數據類型和輸入值(適當時)。測試運行後,此窗口中的輸出值可用。

"ORA-01036: illegal variable name/number"

不知道是什麼原因造成的。這可能不是PLSQL Developer,而是你的功能代碼中的一個錯誤(你還沒有發佈)。

+0

我不明白你的意思。 – Natty

+0

你沒有得到什麼? – APC

+0

我現在能夠理解你想說什麼。我對這個工具很陌生,花了一些時間才弄明白。謝謝! – Natty

-1

我假設您仍然在pl/sql「測試窗口」中,當您將原始測試代碼修改爲自定義時。 Pl/sql有時會出錯。打開一個新的「SQL窗口」,並嘗試使用dbms_output.put_line()運行以查看結果。

+0

PL/SQL有時會出錯?爲什麼SQL窗口比測試窗口更好地工作? –

+0

首先,我沒有聲稱,那麼SQL窗口「效果更好」,然後測試窗口。他正在使用舊版本的plsql開發人員。通過啓動測試窗口,您可以設置具有特定背景的特定測試窗口。並在該窗口中進行修改,plsql可能會「困惑」。在版本12+上,即使修改它,它的工作也很好。 – Ychdziu

+0

PL/SQL不是「錯誤的」,也不會「困惑」。也許你的意思是「PL/SQL Developer」。我看不到窗口背景與綁定變量處理有什麼關係。 –

0

我能夠運行功能如下:

declare 
    v varchar2(1000); 
begin 
    select pkg.get(940) into v from dual; 
    dbms_output.put_line(v); 
end; 

而且,按照APC的評論,有一個屬性列表(小窗口出現在PL/SQL表的下方,有可變類型字段)。您需要在值字段中輸入您希望傳遞的值,然後單擊執行(快捷鍵-F8)。輸出將在相同的屬性列表窗口中以黃色顯示並突出顯示。點擊以下鏈接參考截圖:

Function Call with single parameter