Мне нужно прочитать структуру некоторых объектов базы данных из базы данных оракула.Поэтому я хочу сделать следующее:
select dbms_metadata.get_ddl('TABLE', 'MY_TABLE', 'OTHERUSER') from dual
Это хорошо работает, если я вошел в систему с пользователем OTHERUSER.Но для PROD у меня есть только пользователь, который имеет синонимы и использует эти объекты с этими синонимами.Я могу выбрать информацию TABLE с помощью ALL_TABLES, где я вижу, что владельцем является OTHERUSER, но когда я запускаю этот код выше с другим пользователем, я получаю следующую ошибку:
ORA-31603: object "MY_TABLE" of type TABLE not found in schema "OTHERUSER"
ORA-06512: at "SYS.DBMS_METADATA", line 6069
ORA-06512: at "SYS.DBMS_METADATA", line 8666
ORA-06512: at line 1
Это точно насхема OTHERUSER.Что я могу сделать по-другому, чтобы получить этот пробег?Я могу выбрать из ALL_TABLES, ALL_INDEXES и т. Д., Чтобы я мог прочитать информацию в любом случае, так что это может быть не правильной проблемой, или я ошибаюсь?
Я знаю, как обходной путь, я могу использовать процедуру, котораяработает в контексте OTHERUSER, но это более чем безобразно.