v_SQL := 'SELECT DATA1, DATA2, NUM1, NUM2 FROM XXXX'; EXECUTE IMMEDIATE v_SQL INTO o_DATA1, o_DATA2, o_NUM1, o_NUM2;这样可以把检索的结果赋值到几个返回变量中,那么如何能得出sql一共检索出几条数据呢?

解决方案 »

  1.   

    再EXECUTE IMMEDIATE个SELECT count(1) FROM XXX
      

  2.   

    楼主某非是想一条sql中搞定
    那好像不行
    要不多取个rownum  对大的rownum值就是记录条数
      

  3.   

    select col1,col2 ,
    (select count(col1) from tab_name) count into v_1,v_2,v_countfrom tab_name
      

  4.   

    count number;--记录条数
    EXECUTE IMMEDIATE SELECT DATA1, DATA2, NUM1, NUM2 FROM XXXX max(rownum) INTO o_DATA1, o_DATA2, o_NUM1, o_NUM2,count;
    其中的count就是操作的条数了