用SQLPLU提取Oracle数据库ERD



我想询问有关从sqlplus提取Oracle ER图(ERD(的问题。我的条件必须从我的VPS(另一台服务器上的Oracle数据库(访问Oracle数据库。我需要使用VPS,因为使用VPS,它将提供一个用于Oracle数据库服务器的域,以授予对其数据库的访问。我知道要生成的ER图是来自Oracle SQL开发人员。但是使用我当前的VPS,它仅提供CLI。不幸的是使用GUI的SQL开发人员,因此我不能使用它。因此,如何使用SQL Developer从Oracle数据库WitoHout提取ER图,并且该解决方案不得使用带有GUI的应用程序。

您可以生成一个包含每个表的描述的纯文本文件,将此文件从远程计算机下载到本地计算机,然后将内容加载到ERD工具中,例如Oracle DataModeler。

获得表描述的常见脚本(包括您的目标,外键约束(是:

set heading off;
set echo off;
Set pages 1000;
set long 50000;
SET linesize 150;
spool My_ddl.sql;
select DBMS_METADATA.GET_DDL('TABLE','<your table 1>','<schema>') from DUAL;
select DBMS_METADATA.GET_DDL('TABLE','<your table 2>','<schema>') from DUAL;
select DBMS_METADATA.GET_DDL('TABLE','<your table 3>','<schema>') from DUAL;
    .
    .
    .
spool off; 

因此,基本上您仍然会使用GUI工具来构建图表,但是技巧在于您如何获得源脚本。

如果您担心如何为所有10,000个表生成get_ddl指令,请不要担心,因为您可以运行以下内容:

SELECT 'SELECT DBMS_METADATA.GET_DDL(''TABLE'','''||table_name||''', ''<LOCAL/FOREIGN SCHEMA>'') FROM dual;' as get_ddls
FROM all_tables
WHERE owner = '<User of the foreign schema where tables are stored>';

,然后只需将结果粘贴到上一个脚本中即可。

为了检索文件生成的服务器端,您可以随时询问(当然是(DBA将其移交给您,除非您有一种直接访问服务器目录/文件的方法。

祝你好运。

最新更新