2015-10-27 3 views
2

В нашем проекте мы имеем одну базы данных, работающие на Oracle 8i (я знаю, эта версия является древней, но ...)Альтернативы для DBMS_METADATA.GET_DLL в Oracle 8i

Я хочу, чтобы проверить заявление DDL для одной ОБЩЕСТВЕННЫХ связи с базой данных я попробовал:

select dbms_metadata.get_ddl('DB_LINK', 'LINKNAME', 'PUBLIC') from dual; 

select dbms_metadata.get_ddl('DB_LINK', 'LINKNAME', 'PUBLIC') from dual; 
        * 
ERROR at line 1: 
ORA-00904: invalid column name 

По моим сведениям, похоже оракула 8i не поддерживает dbms_metadata. Пожалуйста, поправьте меня, если я ошибаюсь.

Таблица dba_db_links предоставила мне немного информации, но отсутствует идентификатор целевой базы данных.

Есть ли способ получить инструкцию DDL на Oracle 8i помимо экспорта базы данных/схемы?

+0

Серьезно ... * 8i *? Это прошлый век! Упрек, так как я также хотел бы знать, что люди делали за 8 дней, потому что, насколько я могу судить, вы получите все детали от вашего ** источника управления **. –

+0

Надеюсь, ваш вопрос не означает: «Какой пароль использовался для этого DB-Link?». Пароль, который вы не получите в любом случае. –

+0

@LalitKumarB: проверит контроль источника. Если у вас есть какая-либо ссылка, касающаяся этого, вы можете поделиться им? –

ответ

2

Вы можете запросить словарь данных:

SELECT 'CREATE PUBLIC DATABASE LINK "'||DB_LINK||'" CONNECT TO '||USERNAME||' IDENTIFIED BY "<PWD>" USING '''||HOST||''';' AS cmd 
FROM DBA_DB_LINKS 
WHERE owner = 'PUBLIC' 
    AND DB_LINK = 'LINKNAME'; 

Если вы пропустите информацию попробуйте выбрать таблицу sys.link$ вместо этого.

+0

Да ... я пропустил столбец 'host' в' dba_db_links'. Готово. –

1

Вы можете использовать инструменты exp/imp. Экспортируйте эту базу данных (или схему) с помощью exp rows=now, а затем импортируйте обратно в базу данных с помощью imp show=yes.

Это не внесет никаких изменений в базу данных, но все DDL-файлы будут помещены в файл журнала.

+0

Да, это будет очень полезно для таблиц. –

Смежные вопросы