久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

dbms

157次閱讀
沒有評論

共計 2263 個字符,預計需要花費 6 分鐘才能閱讀完成。

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

dbms_metadata 包中的 get_ddl 函數

1. 得到一個表或索引的 ddl 語句

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

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

2. 得到一個用戶下的所有表,索引,存儲過程的 ddl

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

存儲過程:查看 存儲過程 的定義語句

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 語句

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

4. 得到所有創建用戶的 ddl

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

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

9i  中可以利用 DBMS_METADATA.GET_DDL 包得到數據庫的對象的 ddl 腳本。如下(SQLPLUS 中執行):

a. 獲取單個的建表、視圖和建索引的語法

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. 獲取一個 SCHEMA 下的所有建表、視圖和建索引的語法,以 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.  獲取某個 SCHEMA 的建全部存儲過程的語法  
 
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.  獲取某個 SCHEMA 的建全部函數的語法  
 
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;

看完了這篇文章,相信你對“dbms_metadata 怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計2263字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 来安县| 安庆市| 阿巴嘎旗| 济南市| 赣榆县| 临泽县| 江孜县| 武邑县| 图木舒克市| 横山县| 新津县| 全南县| 通河县| 无极县| 仁化县| 蒙城县| 广西| 宁乡县| 鹿泉市| 泰安市| 博湖县| 高密市| 南投市| 襄城县| 墨竹工卡县| 建始县| 岗巴县| 永宁县| 滦南县| 扎赉特旗| 沙雅县| 安康市| 永寿县| 聂拉木县| 梓潼县| 宝兴县| 长沙县| 涿鹿县| 邵阳市| 湟中县| 万山特区|