Pergunta

(Excuse qualquer ignorância meu aqui -. Eu não sou um usuário do Oracle temperado)

Eu estou tentando usar a função DBMS_METADATA.GET_DDL (em conjunto com ALL_OBJECTS ou algo assim) para obter o DDL para todas as tabelas em um esquema particular. Quando eu fizer isso (seja para todos os objetos ou para um único objeto específico) eu recebo um erro ORA-31603 ( "objeto 'FOO' do tipo TABLE não encontrada em esquema 'esquema').

Eu assumo isto significa que o usuário Eu estou logado com não têm qualquer que seja privilégio é necessário ler os metadados necessários para GET_DDL. Que privilégio é isso que é necessário? Existe uma maneira quando conectado para confirmar que o usuário atual faz / não tem esse privilégio?

obrigado! Lee

Foi útil?

Solução

Leia este documento, mas, basicamente, você precisa SELECT_CATALOG_ROLE

http://download.oracle. com / docs / cd / B19306_01 / appdev.102 / b14258 / d_metada.htm # i1016867

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top