在我们的项目中,我们有一个运行在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给了我一些信息,但是缺少了目标数据库的SID。
除了导出数据库/模式之外,还有其他方法可以在Oracle 8i上获得DDL语句吗?
发布于 2015-10-27 07:45:21
您可以查询数据字典:
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$。
发布于 2015-10-27 08:36:04
您可以使用exp/imp工具。使用exp rows=now导出该数据库(或模式),然后使用imp show=yes将其导入数据库。
这将不会对数据库进行任何更改,但是所有的DDL都将被放入日志文件中。
https://stackoverflow.com/questions/33362049
复制相似问题