假设我的表A有 ID,NAME,AGE三列。
当我用for循环查询时。declare
       xx varchar2(20);--xx代表的是A表中的任意列
   begin
               FOR A IN(SELECT  xx FROM A)LOOP
                      dbms_output.put_line(a.xx);             
             END LOOP;
end; 
输出的只是XX变量的值,而不是XX对应的列的值。

解决方案 »

  1.   

    测试declare 
          vender_name varchar2(20);--xx代表的是A表中的任意列 
      begin 
                  FOR A IN(SELECT  vender_name FROM TB_VENDER_MASTER)LOOP 
                          dbms_output.put_line(a.VENDER_NAME);            
                END LOOP; 
    end; 
    结果是杰诚电脑数码公司
    金余科技有限公司
    大通科技有限公司
      

  2.   

    这种写法在PL/SQL中肯定跑不出结果。
      

  3.   

    SQL> ed
    已写入 file afiedt.buf  1  declare
      2        name varchar2(20);--xx代表的是A表中的任意列
      3    begin
      4                FOR A IN(SELECT  name FROM test_02)LOOP
      5                        dbms_output.put_line(a.name);
      6              END LOOP;
      7* end;
    SQL> /
    B2d2333
    Bdsdf232
    A1asdflksa
    ab&gt?ddd
    我是?????
    你是?达到
    ddddPL/SQL 过程已成功完成。我这时执行是对应的值呀
      

  4.   


    注意别忘记使用set serveroutput on 将结果输出
      

  5.   

    如果你sqlplus下面,一定要使用
    set serveroutput on
    否则是肯定不显示的
      

  6.   


    是的,是的,或者调用dbms_output.enable();