[Oracle] dbms_metadata.get_ddl 的使用方法總結(jié)
更新時間:2013年07月12日 10:04:21 作者:
以下是對Oracle中dbms_metadata.get_ddl的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
dbms_metadata.get_ddl()用于獲取對象的DDL,其具體用法如下。
注意:在sqlplus里,為了更好的展示DDL,需要設(shè)置如下參數(shù):
set line 200
set pagesize 0
set long 99999
set feedback off
set echo off
1)獲得表、索引、視圖、存儲過程、函數(shù)的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下所有的表、索引、視圖、存儲過程、函數(shù)的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;
注意:在sqlplus里,為了更好的展示DDL,需要設(shè)置如下參數(shù):
復(fù)制代碼 代碼如下:
set line 200
set pagesize 0
set long 99999
set feedback off
set echo off
1)獲得表、索引、視圖、存儲過程、函數(shù)的DDL
復(fù)制代碼 代碼如下:
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下所有的表、索引、視圖、存儲過程、函數(shù)的DDL
復(fù)制代碼 代碼如下:
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:
復(fù)制代碼 代碼如下:
select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;
獲得所有表空間的DDL:
復(fù)制代碼 代碼如下:
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;
3)獲得用戶的DDL
獲得單個用戶的DDL:
復(fù)制代碼 代碼如下:
select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;
獲得所有用戶的DDL:
復(fù)制代碼 代碼如下:
SELECT DBMS_METADATA.GET_DDL('USER',U.username)
FROM DBA_USERS U;
相關(guān)文章
使用Oracle通過gateway連接MSSQL的詳細(xì)流程
oracle Gateway是Oracle公司提供的一種訪問非Oracle數(shù)據(jù)源的方法,它可以將非Oracle數(shù)據(jù)源(如SQLserver、mysql等)的數(shù)據(jù)看作是oracle數(shù)據(jù)庫中的表,從而可以使用SQL和PLSQL等Oracle語言來訪問這些數(shù)據(jù),本文介紹了使用Oracle通過gateway連接MSSQL的詳細(xì)流程2024-12-12
解決Hibernate JPA中insert插入數(shù)據(jù)后自動執(zhí)行select last_insert_id()
這篇文章主要介紹了Hibernate JPA中insert插入數(shù)據(jù)后自動執(zhí)行select last_insert_id()的解決方法。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
Oracle生成連續(xù)的數(shù)字/字符/時間序列的常用語法
這篇文章主要介紹了Oracle生成連續(xù)的數(shù)字/字符/時間序列的常用語法,在 Oracle 中實現(xiàn)數(shù)據(jù)行生成的方法有很多,本文只介紹幾種常用的語法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-04-04
oracle獲取當(dāng)前時間,精確到毫秒并指定精確位數(shù)的實現(xiàn)方法
下面小編就為大家?guī)硪黄猳racle獲取當(dāng)前時間,精確到毫秒并指定精確位數(shù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法
Oracle7.X 回滾表空間數(shù)據(jù)文件誤刪除處理方法...2007-03-03
oracle 12c因誤刪pdb數(shù)據(jù)文件導(dǎo)致整個數(shù)據(jù)庫打不開的解決方法
這篇文章主要給大家介紹了關(guān)于oracle 12c因誤刪pdb數(shù)據(jù)文件導(dǎo)致整個數(shù)據(jù)庫打不開問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2017-10-10
oracle11g 最終版本11.2.0.4安裝詳細(xì)過程介紹
這篇文章主要介紹了oracle11g 最終版本11.2.0.4安裝詳細(xì)過程介紹,詳細(xì)的介紹了每個安裝步驟,有興趣的可以了解一下。2017-03-03

