怎么我这里(SQL*PlUS)只返回一次啊?
是不是其他地方(你的环境)有问题?

解决方案 »

  1.   

    没有问题,只有一次:
    11:15:04 jlanzpa817>SET SERVEROUTPUT ON
    11:20:30 jlanzpa817>DECLARE
    11:20:30   2    j NUMBER;
    11:20:30   3  BEGIN
    11:20:30   4    FOR i IN 1..100 LOOP
    11:20:30   5     IF (MOD(i, 2) = 1) THEN
    11:20:30   6        j:=i;
    11:20:30   7     END IF;
    11:20:30   8    END LOOP;
    11:20:30   9   DBMS_OUTPUT.enable; 
    11:20:30  10   DBMS_OUTPUT.put_line('last odd number was ' || TO_CHAR(j));
    11:20:30  11  END;
    11:20:30  12  /
    last odd number was 99PL/SQL 过程已成功完成。已用时间:  00: 00: 00.31
      

  2.   

    如果直接把代码写在上面是可以的!只执行一遍!
    但是生成sql后再执行就是两遍!
    这是为什么?
      

  3.   

    生成SQL再执行,
    什么意思啊?存到文本文件里,再调用?
      

  4.   

    应给没有问题的,我测试了
    sql>@c:\ddd.sql
    sql>/
    last odd number was 99PL/SQL 过程已成功完成。没有问题的,我包存到c:\ddd.sql里的