问个存储过程的问题
我建立一个INDEX-BY表
然后把计算出来的数据放入INDEX-BY表
最后用管道输出
每次到管道输出的时候出个异常
异常信息是no more rows needed但是结果是正常的。问题找了很长时间没找到
到这步出现异常  v_i := gv_gwics_int_tab.count;
  for i in 1 .. v_i loop
    pipe row(obj_gwics_int(i,
                           gv_gwics_int_tab(i).gwics_id,
                           gv_gwics_int_tab(i).kind,
                           gv_gwics_int_tab(i).bgnymd,
                           gv_gwics_int_tab(i).endymd,
                           gv_gwics_int_tab(i).currcd,
                           gv_gwics_int_tab(i).capital,
                           gv_gwics_int_tab(i).intrate,
                           gv_gwics_int_tab(i).excrate,
                           gv_gwics_int_tab(i).taxrate,
                           gv_gwics_int_tab(i).intval,
                           gv_gwics_int_tab(i).taxval,
                           gv_gwics_int_tab(i).intbal,
                           gv_gwics_int_tab(i).rmbval,
                           gv_gwics_int_tab(i).notes
                          )
            );
  end loop;    可以确定表种有多少条数据。
  但是到pipe row(obj_gwics_int(i,这步就出来异常了 信息就是no more rows needed。
  谁知道这是什么问题啊,找了很长时间没找出来问题在哪

解决方案 »

  1.   

    你把整个程序框架写出来看看obj_gwics_int是什么东东?
      

  2.   

    type typ_gwics_int_tab is table of t_gwrcs_int%rowtype index by binary_integer;
    gv_gwics_int_tab   typ_gwics_int_tab;      --建立INDEX-BY表---------------------------------------------------------
    CREATE OR REPLACE TYPE "OBJ_GWICS_INT"as object(
    ID       NUMBER,
    GWICS_ID NUMBER,
    KIND     VARCHAR2(50),
    BGNYMD   DATE,
    ENDYMD   DATE,
    CURRCD   CHAR(3),
    CAPITAL  NUMBER(16,2),
    INTRATE  NUMBER(7,4),
    EXCRATE  NUMBER(10,4),
    TAXRATE  NUMBER(3),
    INTVAL   NUMBER(9,2),
    TAXVAL   NUMBER(9,2),
    INTBAL   NUMBER(9,2),
    RMBVAL   NUMBER(9,2),
    NOTES    VARCHAR2(50))CREATE OR REPLACE TYPE "TAB_GWICS_INT" is table of obj_gwics_int  --用于管道输出就是先把数据存在INDEX-BY表里 再用TAB_GWICS_INT类型管道输出出来