我在PLSQL中写一个存储过程
其中有句SQL语句
 select count(1)
      into rows1
      from T_BASE_AREA_EXCEPTIONCONF t
     where t.indexcode = INDEXCODE
       and t.year = YEAR
       and t.month = MONTH
       and t.zjjgdm = ZJJGDM;
总是返回1,即使我的表格中没有对应条件的记录但在sql plus中执行,则没问题
我很困惑,不知道为什么
请高手帮帮忙

解决方案 »

  1.   

    也一样,  我还试过count(列名),  也是返回1
    我快给他搞疯了
      

  2.   

    检查一下你的程序,不应该会这样的看看我的SQL> variable v_count number;
    SQL> begin
      2  select count(1) into :v_count from user_tables where 1<>1;
      3  end;
      4  /PL/SQL 过程已成功完成。SQL> print :v_count;   V_COUNT
    ----------
             0
      

  3.   

    你的存储过程的连接中有一个没有commit的数据存在
    你commit一下,那就两边的查询结果一致了
      

  4.   


    正常情况下是楼上那样的。不知道你的是什么原因。
    不过我以前试过跟你类似的问题。
    查询出来的结果在后面被覆盖。
    你看看你的过程里面rows1 在这个SELECT后面有没有重新赋值。
      

  5.   


    可能还是事务的问题,导致和sqlplus里面不一样。