要求很简单,就是用oracle代码打印所有表的名称。
那段SQL代码我测试过,没问题,但最后显示的是 14 rows selected.
我想要最后是pl sql procedure successfully completed. 这个效果。
请问应该怎么改。set pagesize 20
set serveroutput on
declare
cursor c_name is
select table_name 
from user_tables;
cname user_tables.name%type;
begin
open c_name;
loop
fetch c_name into cname;
exit when c_name%notfound;
dbms_output.put_line(cname);
end loop;
close c_name;
end;
/

解决方案 »

  1.   

    set pagesize 20
    set serveroutput on
    declare
    cursor c_name is
    select table_name 
    from user_tables;
    cname c_name%rowtype;
    begin
    open c_name;
    loop
    fetch c_name into cname;
    exit when c_name%notfound;
    dbms_output.put_line(cname.table_name);
    end loop;
    close c_name;
    end;
    /
      

  2.   

    set pagesize 20
    set serveroutput on
    declare
    cursor c_name is
    select table_name 
    from user_tables;
    cname c_name%ROWTYPE;
    begin
    open c_name;
    loop
    fetch c_name into cname;
    exit when c_name%notfound;
    dbms_output.put_line(cname);
    end loop;
    close c_name;
    end;
    /
      

  3.   

    第七行USER_TABLES表中name字段应改为table_name,即:cname user_tables.table_name%type;另外,使用dbms_output.put_line输出过多可能会缓存溢出!
      

  4.   


    set pagesize 20
    set serveroutput on
    declare
    cursor c_name is
    select table_name 
    from user_tables;
    cname user_tables.table_name%type;
    begin
    open c_name;
    loop
    fetch c_name into cname;
    exit when c_name%notfound;
    dbms_output.put_line(cname);
    end loop;
    close c_name;
    end;
    /应该是这个
      

  5.   

    一 user_tables表里没有name这个字段,应该是TABLE_NAME
    二 输出时,应该放在循环体内
    这是正确的sql语句,楼主参考下
    declare
    cursor c_name is
    select table_name 
    from user_tables;
    cname user_tables.TABLE_NAME%type;
    begin
    open c_name;
    loop
    fetch c_name into cname;
    dbms_output.put_line(cname);
    exit when c_name%notfound;
    end loop;
    close c_name;
    end;
      

  6.   

    declare
    cursor c_name is
    select table_name 
    from user_tables;
    cname user_tables.TABLE_NAME%type;
    --此处可以使用cname user_tables.table_name%type
    --也可以使用 cname c_name%rowtype,不过上下要一致;
    begin
    open c_name;
    loop
    fetch c_name into cname;
    dbms_output.put_line(cname);
    --如果前面使用的是%rowtype,则须写dbms_output.put_line(cname.table_name);
    --否则写dbms_output.put_line(cname);

    exit when c_name%notfound;
    end loop;
    close c_name;
    end;