签到成功

知道了

CNDBA社区CNDBA社区

oracle dbms_metadata.get_ddl方法总结

2021-11-18 21:12 1098 0 原创 oracle
作者: hbhe0316
set line 200
set pagesize 0
set long 99999
set feedback off
set echo off

1.查看SYS.T1表的建表语句http://www.cndba.cn/hbhe0316/article/22192http://www.cndba.cn/hbhe0316/article/22192

SQL> select dbms_metadata.get_ddl('TABLE','T1','SYS') from dual;

DBMS_METADATA.GET_DDL('TABLE','T1','SYS')
--------------------------------------------------------------------------------

  CREATE TABLE "SYS"."T1"
   (    "ID" NUMBER(*,0),
        "NAME" VARCHAR2(10)
   )

2.查看索引http://www.cndba.cn/hbhe0316/article/22192

SQL> create INDEX T1_INDEX ON SYS.T1(ID);

Index created.

SQL> select dbms_metadata.get_ddl('INDEX','T1_INDEX','SYS') from dual;

DBMS_METADATA.GET_DDL('INDEX','T1_INDEX','SYS')
--------------------------------------------------------------------------------

  CREATE INDEX "SYS"."T1_INDEX" ON "SYS"."T1" ("ID")
  PCTFREE 10 INITRANS 2 M

3.查看视图

SQL> create view T1_VIEW as select id from SYS.T1;

View created.

SQL> select dbms_metadata.get_ddl('VIEW','T1_VIEW','SYS') from dual; 

DBMS_METADATA.GET_DDL('VIEW','T1_VIEW','SYS')
--------------------------------------------------------------------------------

  CREATE OR REPLACE FORCE NONEDITIONABLE VIEW "SYS"."T1_VIEW" ("ID") AS
  sele

4.查看PROCEDUREhttp://www.cndba.cn/hbhe0316/article/22192

select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;

5.查看FUNCTIONhttp://www.cndba.cn/hbhe0316/article/22192

select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;

6.下面这个脚本用于获得某个schema下所有的表、索引、视图、存储过程、函数的DDLhttp://www.cndba.cn/hbhe0316/article/22192http://www.cndba.cn/hbhe0316/article/22192

set pagesize 0
set long 90000
set feedback off
set echo off
spool schema_ddl.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',U.TABLE_NAME,U.OWNER) FROM DBA_TABLES u;
SELECT DBMS_METADATA.GET_DDL('VIEW',U.VIEW_NAME,U.OWNER) FROM DBA_VIEWS u;
SELECT DBMS_METADATA.GET_DDL('INDEX',U.INDEX_NAME,U.OWNER) FROM DBA_INDEXES u;
select dbms_metadata.get_ddl('PROCEDURE',U.OJECT_NAME, U.OWNER,) from dba_objects u where u.object_type = 'PROCEDURE';
select dbms_metadata.get_ddl('FUNCTION',U.OJECT_NAME, U.OWNER,) from dba_objects u where u.object_type = 'FUNCTION';
spool off;

7.获得表空间的DDL

select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;

8.获得所有表空间的DDL:http://www.cndba.cn/hbhe0316/article/22192http://www.cndba.cn/hbhe0316/article/22192

SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;

9.获得用户的DDL

http://www.cndba.cn/hbhe0316/article/22192

select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;

10.获得所有用户的DDL

SELECT DBMS_METADATA.GET_DDL('USER',U.username) FROM DBA_USERS U;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux,oracle

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1136416次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ