国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE獲取DDL的幾種常用的方法

2024-08-29 13:30:49
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,


oracle獲取ddl的幾種常用的方法

 

作者:劉穎博

時間:2004-2-26

mail:[email protected],請指正

 

轉載請注明出處及作者

 

大體的分為三種方法:

一;可以通過toad、plsql develop等第三方工具進行導出dll操作,用這種辦法的好處在于操作簡單方便,但需要安裝,下面簡單介紹一下用這兩個工具獲得dll語句的操作。

 

1.首先是toad工具,可以到www.quest.com網站上下載

操作步驟的簡要介紹如下:

a.    啟動toad,連接目標數據庫

b.    點擊dba->generate schema script,如圖1所示:



圖1

c.出現圖2的操作界面:



圖2

通過操作界面(如圖2)已經很清楚的,選擇相應的schema,當然可以通過其他的幾個tab頁面選擇相應的條件,點擊execute按鈕,ok。詳細的操作就不說了!

d.當導出操作結束后,會出現如圖3的界面



圖3

我們可以將導出的ddl腳本另存(save to file)或者copy到剪貼板上(clipboard)。

2.下面說一下另外的一個工具plsql develop是如何進行到出ddl語句的

操作步驟如下:

a.    啟動plsql develop,連接目標數據庫

b.    點擊tools->export tables,如圖4



圖4

c.    然后出現下面界面,如圖5



圖5

d.    在如圖5的界面上,選擇相應的內容,然后點擊export按鈕,ok,會出現界面如圖6,其實這些工具也是調用oracle的exp工具而已



圖6

如果你沒有指定文件目錄,文件會出現在plsql develop軟件的安裝目錄下。

好,下面介紹第二種方法

二;直接通過exp/imp工具

oracle提供的最原始最實用的導入導出工具,我們大體上可以分為三種辦法實現導出ddl。

a.    通過imp指定indexfile參數,但這種辦法不爽在于有每行前會有rem

語法大體如下:

exp userid=... tables=emp  rows=n file=emp.dmp
imp userid=... file=emp.dmp indexfile=emp.sql

b.    通過imp指定show=y,同時指定log參數,格式上也不是很爽,在格式上很美觀的還是通過工具導出的比較美觀

語法大體如下:

exp userid=... tables=emp rows=n file= emp.dmp
imp userid=... file= emp.dmp show=y log=emp.sql

c.    利用unix下有strings命令,語法大體如下,這種方法比較野蠻:

exp userid=... tables=tab1 rows=n file=tab1.dmp
strings emp.dmp >emp.sql
emp.sql中就有dll語句了

第三種方法,是利用oracle9i的新特性,就是dbms_metadata包,來得到dll語句,這個也是本文要介紹的重點

三;通過9i的dbms_metadata包得到dll語句

基本上用到的語法如下:

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

set heading off;
set echo off;
set pages 999;
set long 90000;
 
spool dept.sql
select dbms_metadata.get_ddl('table','dept','scott') from dual;
select dbms_metadata.get_ddl('index','dept_idx','scott') from dual;
spool off;

 

b.獲取一個schema下的所有建表和建索引的語法,以scott為例:

set pagesize 0

set long 90000

set feedback off

set echo off
spool scott_schema.sql
connect scott/tiger;
select dbms_metadata.get_ddl('table',u.table_name)
     from user_tables u;
select dbms_metadata.get_ddl('index',u.index_name)
     from user_indexes u;
spool off;

 

c.    獲取某個schema的建全部存儲過程的語法

connect brucelau /brucelau;

spool procedures.sql


select
   dbms_metadata.get_ddl('procedure',u.object_name)

from
   user_objects u

where
   object_type = 'procedure';


spool off;

 

另:

dbms_metadata.get_ddl('table','tab1','user1')
三個參數中,第一個指定導出ddl定義的對象類型(此例中為表類型),第二個是對象名(此例中即表名),第三個是對象所在的用戶名。

 

參考:

zdnet china《輕松取得oracle結構描述句法》

oracle的官方文檔

 

 

感謝shangym(山 水 天 雪 橋)

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 互助| 拉孜县| 平度市| 仙居县| 尚义县| 治多县| 昌乐县| 玉田县| 遵义县| 绥中县| 宜州市| 页游| 阿勒泰市| 通辽市| 利津县| 辽源市| 上高县| 内丘县| 汉阴县| 衡山县| 宝兴县| 莱阳市| 绥化市| 靖边县| 滨州市| 万年县| 拜泉县| 湖北省| 巴彦县| 连江县| 民丰县| 广平县| 宾阳县| 泾源县| 垦利县| 通化市| 库伦旗| 武平县| 同仁县| 平潭县| 香格里拉县|