2013-12-17 35 views
1

我創建數據庫水平的(存儲)用戶定義類型:Oracle的形式將值分配給用戶定義類型

CREATE OR REPLACE TYPE Some_Text AS VARRAY(20) OF VARCHAR2(50); 

然後是使用這種用戶定義的,一個(存儲)過程鍵入:

CREATE OR REPLACE PROCEDURE Test_Procedure(
    p_to IN Some_Text, 
    p_from IN Some_Text 

--some code here-- 
) 

在窗體級別(Form Builder)上,我使用表格(5個文本項目)創建了一個數據塊。 在此文本項目用戶可以輸入一些文本。然後當調用過程「Test_Procedure」時,這個文本將被用作參數。怎麼做? 我可以調用程序使用此代碼:

Test_Procedure 
      (Some_Text('bla', 'bla', 'bla'), 
      Some_Text('bla', 'bla', 'bla')); 

但是,我不知道該怎麼做,與datablock.text項。

注意: 我對oracle還是很新的,所以請耐心等待。 以前感謝。

回答

0

您可以遍歷該塊來構造varray。

Ex。

declare 
    i number := 0 
begin 
    go_block('myblock'); 
    first_record; 
    loop 
    exit when :system.last_record = 'TRUE'; 
    i := i + 1; 
    some_text(i) := :myblock.mytextitem; 
    next_record; 
    end loop; 
end; 
+0

它給出了一個錯誤。我發現表單在模式級別上不能訪問用戶定義的類型。所以,我把這個類型和過程放在一個包裏。現在用你的方法解決了。謝謝。 – Reyn

相關問題