繁体   English   中英

在Oracle PL / SQL中使用dbms_output.put_line时错误的数量或类型的参数错误

[英]Wrong quantity or types of arguments error while using dbms_output.put_line in Oracle PL/SQL

我的命令dbms_output.put_line()有问题。

我有一个变量pres_name ,我想在屏幕上打印该值。 因此,我使用dbms_output.put_line()但该命令不接受这种类型的Variable,但是我发现他们使用的所有站点都像dbms_output.put_line(varchar variable) 但是我得到这个警告:

Fehler(15,5):please-00306:Fausche Anzahl oder Typen von Argumenten in Aufruf von'PUT'

用英语:

错误的数量或类型的看跌期权的调用

我使用Oracle sql开发人员。

编码:

create or replace
procedure ex10_1
(
 pr_name varchar
)
as
cursor pres is select vice_pres_name from admin_pr_vp;
begin
  open pres;
  for pr_name in pres loop
    dbms_output.put_line(pr_name);
  end loop;
end;

ps:代码还不完美。

<snip>
for pr_name in pres loop
    dbms_output.put_line(pr_name);
end loop;
<snip>

在PL / SQL中, 游标for循环隐式地将循环变量声明为与游标行匹配的记录类型。 因此,在循环pr_name是具有单个字段vice_pres_name的记录。 该字段的类型为vice_pres_name%TYPE 此内部pr_name了外部pr_name参数。 DBMS_OUTPUT.PUT_LINE使用varchar2,并且PL / SQL无法隐式转换pr_name记录。

这是一个匿名示例,该示例使用游标进行循环并使用记录语法来打印游标返回的值:

SQL>     declare
  2          cursor pres is select 'A' as vice_pres_name
  3              from dual union all select 'B' from dual;
  4      begin <<ex10_1>>
  5          for pr_name in pres loop
  6              dbms_output.put_line(pr_name.vice_pres_name);
  7          end loop;
  8      end ex10_1;
  9  /
A
B

PL/SQL procedure successfully completed.

还要注意,cursor for循环会为您隐式打开和关闭游标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM