[Oracle] dbms

來源:互聯網
上載者:User
以下是對Oracle中dbms_metadata.get_ddl的用法進行了詳細的分析介紹,需要的朋友參考下 

dbms_metadata.get_ddl()用於擷取對象的DDL,其具體用法如下。
注意:在sqlplus裡,為了更好的展示DDL,需要設定如下參數:

複製代碼 代碼如下:
set line 200
set pagesize 0
set long 99999
set feedback off
set echo off


1)獲得表、索引、視圖、預存程序、函數的DDL

複製代碼 代碼如下:
select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;
select dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') from dual;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;
select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;


下面這個指令碼用於獲得某個schema下所有的表、索引、視圖、預存程序、函數的DDL

複製代碼 代碼如下:
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.object_name, u.owner,) from dba_objects u where u.object_type = 'PROCEDURE';
select dbms_metadata.get_ddl('FUNCTION',u.object_name, u.owner,) from dba_objects u where u.object_type = 'FUNCTION';
spool off;


2)獲得資料表空間的DDL
獲得單個資料表空間的DDL:

複製代碼 代碼如下:
select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;


獲得所有資料表空間的DDL:

複製代碼 代碼如下:
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;


3)獲得使用者的DDL
獲得單個使用者的DDL:

複製代碼 代碼如下:
select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;


獲得所有使用者的DDL:

複製代碼 代碼如下:


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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.