我在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中执行,则没问题
我很困惑,不知道为什么
请高手帮帮忙
其中有句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中执行,则没问题
我很困惑,不知道为什么
请高手帮帮忙
我快给他搞疯了
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
你commit一下,那就两边的查询结果一致了
正常情况下是楼上那样的。不知道你的是什么原因。
不过我以前试过跟你类似的问题。
查询出来的结果在后面被覆盖。
你看看你的过程里面rows1 在这个SELECT后面有没有重新赋值。
可能还是事务的问题,导致和sqlplus里面不一样。