set serveroutput on;
declare
cursor tb_Test is select * from test;
rTemp tb_Test%rowtype;
begin
open tb_Test;
fetch tb_Test into rTemp;
dbms_output.put_line(to_char(rTemp.TESTID)||' , '||to_char(rTemp.TESTNAME) ||' , '||to_char(rTemp.TESTVALUE)||' , ' || to_char(rTemp.TESTDATE,'yyyy-mm-dd'));
close tb_Test;
end;
/这样只能输出一条记录,我想把所有的记录都输出来

解决方案 »

  1.   

    改为
    declare 
    cursor tb_Test is select * from test; 
    rTemp tb_Test%rowtype; 
    begin 
    open tb_Test; 
    loop
    fetch tb_Test into rTemp; 
    exit when tb_Test%notfound;
    dbms_output.put_line(to_char(rTemp.TESTID) ¦ ¦' , ' ¦ ¦to_char(rTemp.TESTNAME) ¦ ¦' , ' ¦ ¦to_char(rTemp.TESTVALUE) ¦ ¦' , ' ¦ ¦ to_char(rTemp.TESTDATE,'yyyy-mm-dd')); 
    end loop;
    close tb_Test; 
    end;晕怎么又是你呵呵
      

  2.   

    加loop
    end loop;
    set serveroutput on;
    declare
    cursor tb_Test is select * from test;
    rTemp tb_Test%rowtype;
    begin
    open tb_Test;
    loop
    fetch tb_Test into rTemp;
    dbms_output.put_line(to_char(rTemp.TESTID) ¦ ¦' , ' ¦ &brvbarto_char(rTemp.TESTNAME) ¦ ¦' , ' ¦ &brvbarto_char(rTemp.TESTVALUE) ¦ ¦' , ' ¦ ¦ to_char(rTemp.TESTDATE,'yyyy-mm-dd'));
    end loop;
    close tb_Test;
    end;
      

  3.   


    你把中间那段焕成这个
    CURSOR TD_TESTIS
    SELECT * 
    FROM TEST ;
    RTD_TESTIS TD_TESTIS%ROWTYPE;
    BEGIN 
    OPEN TD_TESTIS;
     LOOP
          FETCH TD_TESTIS INTO RTD_TESTIS ;
          EXIT WHEN TD_TESTIS  %NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(to_char(RTD_TESTIS.TESTID) | |' , ' | |to_char(RTD_TESTIS.TESTNAME) | |' , ' | |to_char(RTD_TESTIS.TESTVALUE) | |' , ' | | to_char(RTD_TESTIS.TESTDATE,'yyyy-mm-dd'));