dbms_metadata怎么用

小編給大家分享一下dbms_metadata怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

為高明等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及高明網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、高明網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

dbms_metadata包中的get_ddl函數(shù)

1.得到一個(gè)表或索引的ddl語(yǔ)句

SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;

select dbms_metadata.get_ddl('INDEX','PK_DEPT','SCOTT') from dual;

2.得到一個(gè)用戶下的所有表,索引,存儲(chǔ)過程的ddl

SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name) 
FROM USER_OBJECTS u 
where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');

存儲(chǔ)過程:查看 存儲(chǔ)過程 的定義語(yǔ)句

SQL> SET LONG 9999 
SQL> select dbms_metadata.get_ddl('PROCEDURE','ANALYZEDB','NEWCCS') from dual; 
  CREATE OR REPLACE PROCEDURE "NEWCCS"."ANALYZEDB" 
IS 
   CURSOR get_ownertable 
   IS 
      SELECT table_name 
        FROM user_tables; 
   ownertable   get_ownertable%ROWTYPE; 
BEGIN 
   OPEN get_ownertable; 
   LOOP 
      FETCH get_ownertable 
       INTO ownertable; 
      EXIT WHEN get_ownertable%NOTFOUND; 
      EXECUTE IMMEDIATE    'analyze table ' 
                        || ownertable.table_name 
                        || ' compute statistics for table for all indexes for all indexed  columns'; 
   END LOOP; 
EXCEPTION 
   WHEN OTHERS 
   THEN 
      RAISE; 
END;

3.得到所有表空間的ddl語(yǔ)句

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

4.得到所有創(chuàng)建用戶的ddl

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

================================================================================

9i  中可以利用DBMS_METADATA.GET_DDL包得到數(shù)據(jù)庫(kù)的對(duì)象的ddl腳本。如下(SQLPLUS中執(zhí)行):

a. 獲取單個(gè)的建表、視圖和建索引的語(yǔ)法

set pagesize 0 
set long 90000 
set feedback off 
set echo off 
spool DEPT.sql 
select dbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT') from dual; 
select dbms_metadata.get_ddl('VIEW','VIEW_NAME','SCOTT') from dual; 
select dbms_metadata.get_ddl('INDEX','IDX_NAME','SCOTT') from dual; 
spool off; 
   
b.獲取一個(gè)SCHEMA下的所有建表、視圖和建索引的語(yǔ)法,以scott為例: 
  
set pagesize 0 
set long 90000 
set feedback off 
set echo off 
spool schema.sql 
connect scott/tiger; 
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; 
SELECT DBMS_METADATA.GET_DDL('VIEW',u.VIEW_name) FROM USER_VIEWS u; 
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u; 
spool off;

c.    獲取某個(gè)SCHEMA的建全部存儲(chǔ)過程的語(yǔ)法 
  
set pagesize 0 
set long 90000 
set feedback off 
set echo off 
spool procedures.sql  
select   DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name) from     user_objects u where     object_type = 'PROCEDURE'; 
spool off;

d.    獲取某個(gè)SCHEMA的建全部函數(shù)的語(yǔ)法 
  
set pagesize 0 
set long 90000 
set feedback off 
set echo off 
spool function.sql  
select   DBMS_METADATA.GET_DDL('FUNCTION',u.object_name) from     user_objects u where     object_type = 'FUNCTION'; 
spool off;

看完了這篇文章,相信你對(duì)“dbms_metadata怎么用”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞標(biāo)題:dbms_metadata怎么用
本文URL:http://bm7419.com/article10/jdesdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)微信小程序、App開發(fā)手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)