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

【工具&命令】获取数据库对象的定义(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('','','') 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 '';

--使用expdp的content=metadata_only仅导出metadata的DUMP

expdp / DIRECTORY= content=metadata_only dumpfile=.dmp

--使用impdp的SQLFILE从DUMP导出DDL

impdp / DIRECTORY= DUMPFILE=.dmp SQLFILE=.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';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值