运维开发网

【工具&命令】获取数据库对象的定义(DDL)

运维开发网 https://www.qedev.com 2021-03-02 08:26 出处:51CTO 作者:mb5ff98163a22aa
【工具&命令】获取数据库对象的定义(DDL)TeacherWhatOracle数据库技术Keyword:DDL定义DataDefinitionLanguage可以通过以下的方法获取数据库对象的定义(DDL)。1.使用DBMS_METADATA.GET_DDL程序包SQL>setpages0SQL>setlongchunksize3000SQL>setlong2000000

【工具&命令】获取数据库对象的定义(DDL)

TeacherWhat Oracle数据库技术

Keyword:

DDL 定义 Data Definition Language

可以通过以下的方法获取数据库对象的定义(DDL)。

1. 使用DBMS_METADATA.GET_DDL程序包


     SQL> set pages 0
     SQL> set longchunksize 3000
     SQL> set long 2000000000
     SQL> select dbms_metadata.get_ddl('<对象类型>','<对象名>','<对象SCHEMA>') from dual;

例:

--表定义
 SQL> set pages 0
 SQL> set longchunksize 3000
 SQL> set long 2000000000
 SQL> select dbms_metadata.get_ddl('TABLE','EMP','SCOTT') from dual;

--索引定义
 SQL> select dbms_metadata.get_ddl('INDEX','EMP_IND','SCOTT') from dual;

--用户视图定义
 SQL> select dbms_metadata.get_ddl('VIEW','EMP_VIEW','SCOTT') from dual;

参考:

Home / Oracle Database Online Documentation Library, 12c Release 1 (12.1.0.2)
Database PL/SQL Packages and Types Reference
https://docs.oracle.com/database/121/ARPLS/d_metada.htm#ARPLS66885
>GET_xxx Functions

2. 使用Datapump获取DDL

--创建DUMP导出路径
create or replace directory test_dir as '<DIRECTORY>';

--使用expdp的content=metadata_only仅导出metadata的DUMP
expdp <LOGIN>/<PASSWORD> DIRECTORY=<DIRECTORY_NAME> content=metadata_only dumpfile=<DUMP_NAME>.dmp

--使用impdp的SQLFILE从DUMP导出DDL
impdp <LOGIN>/<PASSWORD> DIRECTORY=<DIRECTORY_NAME> DUMPFILE=<DUMP_NAME>.dmp SQLFILE=<SQLFILE_NAME>.sql FULL=y

例:

expdp system/oracle DIRECTORY=test_dir content=metadata_only dumpfile=ddl.dmp SCHEMAS=SCOTT
impdp system/oracle DIRECTORY=test_dir SQLFILE=allsql.sql dumpfile=ddl.dmp FULL=y

3.使用v$fixed_view_definition 视图查看动态视图的定义

例:

set pagesize 0
select view_name, view_definition from
v$fixed_view_definition where view_name =upper('gv$session');

注意:v$fixed_view_definition仅能显示4000个字符,

所以查看到的视图定义有可能不完整。

4.通过DBA_VIEWS视图查看数据库中的视图定义。

例:


 set long 100000
 select text from dba_views where view_name='UNIFIED_AUDIT_TRAIL';

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号