dbms_output.put_line 不能与游标一起正常工作

Posted

技术标签:

【中文标题】dbms_output.put_line 不能与游标一起正常工作【英文标题】:dbms_output.put_line not working properly with a cursor 【发布时间】:2019-02-12 19:35:59 【问题描述】:

我试图通过 dbms_output 命令使用游标打印从 1 到 100 的数字,但出现错误,提示“ORA-06550:第 6 行,第 1 列:PLS-00306:错误的数字或参数类型调用“PUT_LINE””

然后我尝试使用表格来做同样的事情。 为此,我使用了以下查询:

insert into numb select rownum r from dual connect by rownum

但错误仍然存​​在。

这是我为双表执行的代码:

声明

cursor c_num is select rownum n from dual connect by rownum <=100;
begin 
    for i in c_num
    loop
        dbms_output.put_line('Number is '||i);

    end loop;
end;

对于用户制作的表号:

声明

cursor c_num is select num from numb;
begin 
    for i in c_num
    loop
        dbms_output.put_line('Number is '||i);    
    end loop;
end;

请告诉我这段代码有什么问题。

【问题讨论】:

【参考方案1】:

i 是一个记录类型。您不能将字符串(“Number is”)连接到记录类型。试试这个:

dbms_output.put_line('Number is '||to_char(i.num)); 

【讨论】:

@dingobingo 不客气。如果您的问题已得到解答,请考虑接受答案。这样一来,您的问题就不会再显示为“未回答”。

以上是关于dbms_output.put_line 不能与游标一起正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 的 dbms_output.put_line() 与 dbms_output.put()

Oracle 中的dbms_output.put_line

dbms_output.put_line 的替代方案

错误(357,1):PLS-00201:必须声明标识符“DBMS_OUTPUT.PUT_LINE”

存储过程的dbms_output.put_line问题

PLS-00382:表达式类型错误,无法显示 DBMS_OUTPUT.PUT_LINE