Oracle-Form为用户定义的类型赋值

时间:2013-12-17 07:54:35

标签: sql forms 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--
 )

在表单级(表单生成器)上,我创建了一个带表格(5个文本项)的数据块。 在此文本项上,用户可以输入一些文本。然后,在调用过程“Test_Procedure”时,此文本将用作参数。怎么做? 我可以使用以下代码调用该过程:

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

但是,我不知道如何使用datablock.text-item。

注意: 我对甲骨文还很新,所以请耐心等待。 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以循环遍历该块以构建varray。

实施例

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;