O exemplo a seguir não está funcionando, estou apenas tentando mostrar o que estou tentando fazer.
Tabela dada:
-- this table is located at the CDB
create table t1 (tab_name varchar2(35))
/
-- this proc is located at the CDB
Create or replace procedure FindTables(vPdb in varchar2, vOwner in varchar2)
BEGIN
insert into t1(tab_name) select TABLE_NAME from ALL_TABLES@vPdb where OWNER=vOwner;
END;
/
Existe uma maneira de criar um link de banco de dados temporário ou algo assim? ou alguma outra forma?
EDITAR
Também preciso de uma solução para tabelas de usuários.
Desculpe, mas isso está simplesmente errado. Um dblink não pode ser fornecido como um parâmetro como esse. E um dblink não é necessário para isso.
Você pode acessar informações sobre todas as tabelas em todos os PDBs usando a
CDB_TABLES
visualização.CDB_* Visualizações
Você pode fornecer facilmente o nome do PDB e o proprietário da tabela como parâmetros para uma consulta como acima.