CREATE OR REPLACE TYPE PJMANAGE.TYPE_HK01001B_1 AS OBJECT (
       
        T_I_WEEK_NO           varchar2(4), --通算週ナンバー
        T_I_FIXED_DT             date, --確定週頭年月日        
        T_I_UPDT_IP        varchar2(15) --更新IPアドレス
); CREATE OR REPLACE type PJMANAGE.TEST2 AS TABLE OF TYPE_HK01001B_1上面是数据类型
然后是存储过程调用declare
A1 TYPE_HK01001B_1:=TYPE_HK01001B_1('2','2010/10/10','44');
A2 TYPE_HK01001B_1:=TYPE_HK01001B_1('e','2010/11/11','ww');
B1 TEST2:=TEST2(A1,A2);A3 TYPE_HK01001B_1;
B2 TEST2;
BEGIN
TESTARRLIST(B1,stautes);--存储过程调用,写入的参数数组没有问题
               但是如果我在另外的存储过程中调用这个TESTARRLIST过程的话我就要在存储过程中生成TEST2这个数组。
               FOR i IN 1..4
    LOOP
A3:=TYPE_HK01001B_1(TO_CHAR(i),'2010/10/10','gg');
--************************************8
                  --B2:=TEST2(A3);  这步应该怎么写,请教各位大虾。
                  --************************************
                  现在这样的写法数组中只有最后一条的数据。
END LOOP;
         TESTARRLIST(B2,stautes);--
END;

解决方案 »

  1.   


    declare
    A1 TYPE_HK01001B_1:=TYPE_HK01001B_1('2','2010/10/10','44');
    A2 TYPE_HK01001B_1:=TYPE_HK01001B_1('e','2010/11/11','ww');
    B1 TEST2:=TEST2(A1,A2);A3 TYPE_HK01001B_1;
    B2 TEST2 := TEST2(); --初始化
    BEGIN
    TESTARRLIST(B1,stautes);--存储过程调用,写入的参数数组没有问题
      但是如果我在另外的存储过程中调用这个TESTARRLIST过程的话我就要在存储过程中生成TEST2这个数组。
      FOR i IN 1..4
      LOOP
    A3:=TYPE_HK01001B_1(TO_CHAR(i),'2010/10/10','gg');
    --************************************8
      --B2:=TEST2(A3); 这步应该怎么写,请教各位大虾。
       B2.extend; -- 分配空间
       B2(i) = A3;

      --************************************
      现在这样的写法数组中只有最后一条的数据。
    END LOOP;
      TESTARRLIST(B2,stautes);--
    END;
      

  2.   


    declare
    A1 TYPE_HK01001B_1:=TYPE_HK01001B_1('2','2010/10/10','44');
    A2 TYPE_HK01001B_1:=TYPE_HK01001B_1('e','2010/11/11','ww');
    B1 TEST2:=TEST2(A1,A2);A3 TYPE_HK01001B_1;
    B2 TEST2 := TEST2(); --初始化
    BEGIN
    TESTARRLIST(B1,stautes);--存储过程调用,写入的参数数组没有问题
      但是如果我在另外的存储过程中调用这个TESTARRLIST过程的话我就要在存储过程中生成TEST2这个数组。
      FOR i IN 1..4
      LOOP
    A3:=TYPE_HK01001B_1(TO_CHAR(i),'2010/10/10','gg');
    --************************************8
      --B2:=TEST2(A3); 这步应该怎么写,请教各位大虾。
       B2.extend; -- 分配空间
       B2(i) = A3;

      --************************************
      现在这样的写法数组中只有最后一条的数据。
    END LOOP;
      TESTARRLIST(B2,stautes);--
    END;
      

  3.   

    declare
    A1 TYPE_HK01001B_1:=TYPE_HK01001B_1('2','2010/10/10','44');
    A2 TYPE_HK01001B_1:=TYPE_HK01001B_1('e','2010/11/11','ww');
    B1 TEST2:=TEST2(A1,A2);A3 TYPE_HK01001B_1;
    B2 TEST2 := TEST2(); --初始化
    BEGIN
    TESTARRLIST(B1,stautes);--存储过程调用,写入的参数数组没有问题
      但是如果我在另外的存储过程中调用这个TESTARRLIST过程的话我就要在存储过程中生成TEST2这个数组。
      FOR i IN 1..4
      LOOP
    A3:=TYPE_HK01001B_1(TO_CHAR(i),'2010/10/10','gg');
    --************************************8
      --B2:=TEST2(A3); 这步应该怎么写,请教各位大虾。
       B2.extend; -- 分配空间
       B2(i) = A3;

      --************************************
      现在这样的写法数组中只有最后一条的数据。
    END LOOP;
      TESTARRLIST(B2,stautes);--
    END;