PL / SQL зацикливается на PDB - PullRequest
       28

PL / SQL зацикливается на PDB

0 голосов
/ 22 января 2019

Я пытаюсь написать скрипт PL / SQL, чтобы пройтись по всем подключаемым базам данных, выполнить задачу и создать вывод. Код ниже - это то, что я сделал до сих пор. Я не уверен, что не так, но я получаю ошибку PLS-00306: неверный номер или типы аргументов при вызове 'PUT_LINE' и я не уверен почему. Может кто-нибудь помочь, пожалуйста?

declare
type names_t is table of v$pdbs.name%type;
names names_t;
--vname names_t;
type open_modes_t is table of v$pdbs.open_mode%type;
open_modes open_modes_t;
type privilege_user_t is table of dba_sys_privs.privilege%type;
privilege_user privilege_user_t;
begin
        select name, open_mode
        bulk collect
        into names, open_modes
        from v$pdbs
        where name not in ('PDB$SEED' , 'DCPDB01');
                for j in 1 .. names.count()
                loop
                if open_modes (j) <> 'MOUNTED'
                then
                execute immediate 'alter session set container= "' || names (j) || '"';
                end if;
                --select name bulk collect into vname from v$pdbs;
                select grantee bulk collect into privilege_user from dba_sys_privs
                where (privilege like '%ANY%' or privilege ='DBA') and grantee like 'U%'
                group by  grantee, privilege
                order by grantee;
                DBMS_OUTPUT.put_line(privilege_user);
        end loop;
end;
/

1 Ответ

0 голосов
/ 22 января 2019

DBMS_OUTPUT.put_line() ожидает строку для аргумента.Вы передаете ему тип таблицы типа dba_sys_privs.privilege%.

...