Pregunta

(Disculpe mi ignorancia: no soy un usuario experimentado de Oracle).

Estoy intentando utilizar la función DBMS_METADATA.GET_DDL (junto con ALL_OBJECTS o algo así) para obtener el DDL para todas las tablas en un esquema particular.Cuando hago esto (ya sea para todos los objetos o para un único objeto específico) aparece un error ORA-31603 ("objeto "FOO" de tipo TABLA no encontrado en el esquema "ESQUEMA").

Supongo que esto significa que el usuario con el que inicié sesión no tiene el privilegio necesario para leer los metadatos necesarios para GET_DDL.¿Qué privilegio es este que se necesita?¿Hay alguna forma al iniciar sesión para confirmar que el usuario actual tiene o no este privilegio?

¡gracias!Sotavento

¿Fue útil?

Solución

Lea este documento, pero básicamente necesita SELECT_CATALOG_ROLE

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top