Как получить ddl для таблицы в oracle, кроме процедуры get_ddl - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь получить ddl таблицы, которая присутствует в другой базе данных. Можно ли получить ddl таблицы, используя ссылку БД.

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Насколько я знаю, это невозможно - или, по крайней мере, нелегко. Вы можете сделать обоснованные предположения на основе данных в all_tables или all_tab_cols, но получить информацию об уровне хранения и другие параметры (ограничения, индексы и т. Д. c.) И обратные инженерные работающие команды DDL будет сложнее. Я знаю, что get_ddl - единственный способ быть уверенным . Я также должен сказать, что я не нахожу это удивительным: возможность генерировать DDL для удаленных объектов по каналу связи с базой данных будет рассматриваться как ОГРОМНАЯ уязвимость безопасности для большинства систем.

0 голосов
/ 11 марта 2020

Это довольно сложная работа. Мне никогда не приходилось это делать, но - Фил знает как . Он поделился своим кодом (по его словам, проверено на 9i и 10g); посмотрим, поможет ли это.

Ссылка на его блог: DBMS_METADATA через ссылки на базы данных! .


(Да, я знаю; некоторые люди говорят, что лучше размещать код, чем ссылки , но нет - я не собираюсь этого делать, потому что а) код довольно длинный, б) у меня нет разрешения Фила сделать это. Поэтому ссылка - это все, что вы получаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...