Oracle 尝试打印输出时出现pls-00306错误

Oracle 尝试打印输出时出现pls-00306错误,oracle,plsql,Oracle,Plsql,此代码块在调用“put_line”时返回错误pls-00306错误的参数数量或类型: SET SERVEROUTPUT ON DECLARE ch varchar2(16); cursor ebs_user_cur is select xmlagg(xmlelement("r", ch)).extract('//text()').getstringval() from ( select distinct first_value(ch) ov

此代码块在调用“put_line”时返回错误pls-00306错误的参数数量或类型:

SET SERVEROUTPUT ON
DECLARE  
   ch varchar2(16);
   cursor ebs_user_cur 
   is
   select xmlagg(xmlelement("r", ch)).extract('//text()').getstringval() 
from
(
  select distinct first_value(ch) over (partition by lower(ch))  
  from (
    select substr('abcd#efghijklmn#pqrstuvwxyzABC$DEFGHIJK$LMNPQR!STUVWXYZ1!23456789',
        level, 1)  ch
    from dual 
    connect by level <= 59
    order by dbms_random.value
  )
  where rownum <= dbms_random.value(18,18)
);
l_passwd   ebs_user_cur%ROWTYPE;
BEGIN
open ebs_user_cur;
loop
fetch ebs_user_cur into l_passwd;
DBMS_OUTPUT.PUT_LINE(l_passwd);
EXIT WHEN l_passwd%NOTFOUND;
END LOOP;
close ebs_user_cur;
END;
错误在哪里

多谢各位

您应该在游标中指定列别名 您应该在l_passwd中指定确切的字段名。{field_name}: 将服务器输出设置为ON 声明 ch varchar216; 光标ebs\U user\U cur 是 选择xmlaggxmlelementr,ch.extract'//text.getstringval 作为res-