解决方案 »

  1.   

    因为你下面的 FETCH C_PRO BULK COLLECT是取多行的数据,批量的操作.
      

  2.   


    CREATE OR REPLACE PROCEDURE PRO_PROJECT IS
      TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE;
      V_PROJET P_PROJECT;
    BEGIN
      V_PROJET := P_PROJECT();
      SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199;
      for j in 1..V_PROJET.count loop
        dbms_output.put_line(v_projet(j).id);
      end loop;
      
    END PRO_PROJECT;
      

  3.   

    多谢楼主的回答,赞一个
    本人犯了个错, bulk collect into  返回的是集合,不能单个取值,循环取值就行了,CREATE OR REPLACE PROCEDURE PRO_PROJECT IS
      TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE;
      V_PROJET P_PROJECT;
    BEGIN
      V_PROJET := P_PROJECT();       ---这个是啥意思,去掉不会影响效果哦,
      SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199;
      for j in 1..V_PROJET.count loop
        dbms_output.put_line(v_projet(j).id);
      end loop;
       
    END PRO_PROJECT;