2014-03-04 67 views
0

我需要測試一個涉及用PL/SQL編寫的數組的存儲過程。我無法看到PL/SQL內容(商店規則),但需要調用proc。我想知道如何調用以下proc直接從蟾蜍調用3個整數數組。方法簽名看起來像這樣。如何測試涉及Toad數組的PL/SQL過程?

過程persistChanges(myKey中的NUMBER,arrayOfIntsFirst numberTableType,arrayOfIntsSecond numberTableType,arrayOfIntsThird numberTableType)。

我如何在TOAD中調用PL/SQL過程,我可以硬編碼參數的值來測試過程?我被告知蟾蜍無法做到這一點。非常感激!!!

我不得不相信有一種方法來poplate這些變量,但只是不知道如何去這樣做......

DECLARE 
    myKey NUMBER; 
    arrayOfIntsFirst PL/SQL TABLE; 
    arrayOfIntsSecond PL/SQL TABLE; 
    arrayOfIntsThird PL/SQL TABLE; 

BEGIN 
    myKey := NULL; 
    -- arrayOfIntsFirst := NULL; Modify the code to initialize this parameter 
    -- arrayOfIntsSecond := NULL; Modify the code to initialize this parameter 
    -- arrayOfIntsThird := NULL; Modify the code to initialize this parameter 

    MY_SCHEMA.PKG_MYPACKAGE.PERSISTCHANGES (myKey, arrayOfIntsFirst, 
    arrayOfIntsSecond, arrayOfIntsThird); 
COMMIT; 
END; 

回答

0

試着這麼做:

declare 
    l_nums t_num_tab; 
begin 
    l_nums := t_num_tab(); 
    l_nums.extend(2); 
    l_nums(1) := 56; 
    l_nums(2) := 42; 

    for i in l_nums.first .. l_nums.last 
    loop 
    dbms_output.put_line('Number is: ' || l_nums(i)); 
    end loop; 
end; 

蟾蜍只是一個開發環境,它不會限制你編寫如上所述的匿名塊。 t_num_tab被定義爲一個數字表格:

CREATE OR REPLACE TYPE t_num_tab as table of number; 

您甚至不需要正式擴展集合並分配值。您可以一步初始化:

declare 
    l_nums t_num_tab; 
begin 
    l_nums := t_num_tab(23,89,152); 

... 
end; 

閱讀全文here。希望有所幫助。