不知道大家有没有遇到过这种情况,存储过程上午还测试的没问题,下午再运行不知道为什么。游标取不到值了。而且不是一个,库中的所有存储过程都取不到值了。但是在SQL窗口中能查询出来。很简单的一个过程就一句话:open 游标 FOR select * from A;在存储过程中游标是空的。没值。
可是
select * from A在sql窗口中查询却没问题。
求解。不知道有没有人遇到过这种情况。先说明,权限一定没问题。再重申一下。库中所有的存储过程中的游标对表的查询都取不到值了

解决方案 »

  1.   

    存储过程中count(*)有记录没有?
      

  2.   


    create or replace procedure test123 is
    v_a number;
    type cur is ref cursor;
    v_cur cur;
    begin
      select count(*) into v_a from A;
      DBMS_OUTPUT.put_line('记录总数1:'||v_a);
      open v_cur for select * from A;
        DBMS_OUTPUT.put_line('记录总数2:'||v_cur%ROWCOUNT); 
      close v_cur;
    end test123;输出结果:记录总数1:12300
             记录总数2:0