2 l578854269 l578854269 于 2015.06.09 22:51 提问

PLSQL循环嵌套查询,查询结果一直不打印输出

declare
-- Local variables here
i integer := 1;
currentdate timestamp;
ninsdate timestamp;
nseqid number;
ndate varchar2(10);
nspid varchar2(10);
po INTEGER;
begin
ndate := '201506';
nspid := '33474';
po:=0;
select sysdate + 1 / (24 * 60) into currentdate from dual;
ninsdate := currentdate + 1 / 1440;
for c in (select *
from userorder t
where t.producttype = '1'
and substr(t.ordertime, 1, 6) < '201506'
and t.spid = '33474') loop
if (i = 60) then
i := 1;
ninsdate := ninsdate + 1 / (24 * 60);
end if;
--下面代码没执行输出,不确定为什么
select count(*)
into po
from sgip_report pt
where pt.usernumber = c.usernumber
and pt.insdate > TO_DATE('2015-06-07', 'yyyy-mm-dd')
and pt.state = '0';
dbms_output.put_line(po);--没有打印结果,我后续判断用
if po=0 then
--插入操作
end if;
end loop;
end;

 后台没有打印信息,一直在执行,也没有结束,不是死循环呀,大神帮忙看看

1个回答

s932974516
s932974516   2015.06.09 23:34
已采纳

最上面加一句 set serveroutput on试试

l578854269
l578854269 试过了,不行,因为这个循环也就七千多条数据,执行了半个小时还没有结束,也没打印结果,把嵌套的查询注释掉就没问题,可以打印结果
2 年多之前 回复
l578854269
l578854269 也睡那么晚,能详细点?是第一个for循环后面添加?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片