set serveroutput on;
declare
cursor tb_Test is select * from test;
col1 tb_Test.TESTID%type;
col2 tb_Test.TESTNAME%type;
col3 tb_Test.TESTVALUE%type;
col4 tb_Test.TESTDATE%type;
begin
open tb_Test;
fetch tb_Test into col1,col2,col3,col4;
dbms_output.put_line(to_char(col1)||' , '||to_char(col2) ||' , '||to_char(col3));
close tb_Test;
end;
/执行时说第10行有问题,也找不出来是什么问题

解决方案 »

  1.   

    是不是游标不支持%TYPE,我改成声明改成TEST%TYPE就正确了ORACLE里面格式化日期的函数是什么啊,怎么用
      

  2.   

    col1 tb_Test.TESTID%type; 
    col2 tb_Test.TESTNAME%type; 
    col3 tb_Test.TESTVALUE%type; 
    col4 tb_Test.TESTDATE%type; 
    改为
    col1 test.TESTID%type; 
    col2 test.TESTNAME%type; 
    col3 test.TESTVALUE%type; 
    col4 test.TESTDATE%type; 
      

  3.   

    我不用dbms_output.put_line怎样可以把游标中的数据显示啊
      

  4.   

    select to_char(sysdate,'yyyy-mm-dd') from dual
    这是格式日期的
    不用dbms_output.put_line的话我也不知道打印
    都用dbms_output.put_line
    你为什么不想用它晕.
      

  5.   

    哦,知道了
    如果用for语句来输出,怎样才晓得找开的游标是空的,然后跳出循环
      

  6.   

    declare 
    cursor tb_Test is select * from test; 
    col1 tb_Test.TESTID%type; 
    col2 tb_Test.TESTNAME%type; 
    col3 tb_Test.TESTVALUE%type; 
    col4 tb_Test.TESTDATE%type; 
    begin 
    open tb_Test; 
    fetch tb_Test into col1,col2,col3,col4; 
    exit when tb_Test%notfound;
    dbms_output.put_line(to_char(col1) ¦ ¦' , ' ¦ ¦to_char(col2) ¦ ¦' , ' ¦ ¦to_char(col3)); 
    close tb_Test; 
      

  7.   

    晕不会用红色字体
    加这句话
    exit when tb_Test%notfound;
      

  8.   

    set serveroutput on;
    declare
    cursor tb_Test(argId TEST.TESTID%type) is select * from test where testid=argId;
    rTemp tb_Test%rowtype;
    iTemp Test.TESTID%type;
    begin
    for iTemp in 1..10 loop
    open tb_Test(iTemp);
    exit when tb_Test%notfound;
    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 loop;
    end;
      

  9.   

    exit when tb_Test%notfound; 
    fetch tb_Test into rTemp; 
    这两行调换一下顺序
      

  10.   

    另外open cursor
    和close cursor
    放到循环外面