Oracle 通过PDB的PL/SQL循环

Oracle 通过PDB的PL/SQL循环,oracle,plsql,dbms-output,Oracle,Plsql,Dbms Output,我试图编写一个PL/SQL脚本来循环遍历所有可插入数据库,执行任务并生成输出。下面的代码是我到目前为止所做的。我不确定是什么错了,但我得到的错误是 PLS-00306:调用“PUT_LINE”时参数的数量或类型错误 我不知道为什么。有人能帮忙吗 声明 类型名称\u t是v$pdbs的表。名称%type; 姓名; --vname名称; 类型open_modes_t是v$PDB的表。open_mode%类型; 打开模式打开模式; 类型privilege\u user\t是dba\u sys\u pr

我试图编写一个PL/SQL脚本来循环遍历所有可插入数据库,执行任务并生成输出。下面的代码是我到目前为止所做的。我不确定是什么错了,但我得到的错误是 PLS-00306:调用“PUT_LINE”时参数的数量或类型错误 我不知道为什么。有人能帮忙吗

声明
类型名称\u t是v$pdbs的表。名称%type;
姓名;
--vname名称;
类型open_modes_t是v$PDB的表。open_mode%类型;
打开模式打开模式;
类型privilege\u user\t是dba\u sys\u privilege.privilege%类型的表;
特权用户特权用户;
开始
选择名称,打开\u模式
批量收集
进入名称、打开模式
从v$pdbs开始
其中名称不在('PDB$SEED','DCPDB01');
对于1中的j。。name.count()
环
如果打开_模式(j)‘安装’
然后
立即执行“alter session set container=“”| | names(j)| |“”;
如果结束;
--选择从v$pdbs批量收集到vname中的名称;
从dba\U sys\U privs中选择被授权人批量收集到特权用户
其中(特权,如“%ANY%”或特权='DBA')和受让人,如“U%”
按受让人分组,特权
承授人的命令;
DBMS_OUTPUT.put_line(特权用户);
端环;
结束;
/
DBMS\u输出。put\u line()需要一个字符串作为参数。您正在向它传递一种类型的dba\u sys\u privis.privilege%type.

DBMS\u OUTPUT.put\u line(privilege\u user(j)。[column\u name])