2015-07-22 109 views
-1

表ABC有以下列如何通過匿名塊值與PLSQL表參數

approved_ain 
    1 
    2 
    12 
    34 

我有一個過程

create or replace procedure abc(p_admin varchar2, 
p_approved_ain abc.approved_ain)--plsql table in parameter 

begin 

end; 

現在,當我撥打一個匿名塊這個程序: -

declare 
l_Admin varchar2(100); 
l_approved_ain abc.approved_ain; 

begin 
abc(l_Admin ,l_approved_ain); 
commit; 

end; 

如何將plsql表的approved_ain值傳遞給這個匿名塊。這就是我想通過傳遞ABC臺approved_ain列的值來測試它.......

答:

declare 
    l_Admin varchar2(100); 
    l_approved_ain abc.approved_ain; 

    begin 
l_approved_ain(1) :=123; 
l_approved_ain(2) :=4645; 
    abc(l_Admin ,l_approved_ain); 
    commit; 

    end; 
+0

您無法將參數傳遞給匿名PL/SQL塊。相反,塊必須從某處讀取值。 – user272735

+0

問題是如何從某個地方取消值 –

+0

在同一個模式中不能同時使用表'abc'和過程'abc',它們的名稱會發生​​衝突。 'abc.approved_ain'是列引用,不是數據類型引用,除非'abc'也是您的模式名稱。在這種情況下,如何定義'abc.approved_ain'? – Sentinel

回答

0

鑑於這一事實,你只是想測試一下,怎麼樣只設置匿名塊中的值:

declare 
l_Admin varchar2(100) := 'string'; 
l_approved_ain abc.approved_ain := ???; 

begin 
abc(l_Admin ,l_approved_ain); 
commit; 

end;