2010-08-16 75 views
3

我是使用oracle的新手,我唯一的經驗是在sql server。在SQL Server中,您可以右鍵單擊一個表並說出口創建腳本。我需要Oracle,特別是10g。有沒有辦法通過圖形用戶界面或SQL命令,可以實現這一目標?從Oracle數據庫導出數據定義腳本

+0

你如何訪問Oracle實例 - 用PLSQL開發,蟾蜍,SQLPlus等? – 2010-08-16 22:19:21

+0

我正在使用SQLPlus – aceinthehole 2010-08-16 22:22:51

回答

4

調用dbms_metadata.get_ddl是一個選項。

例如

SET LONG 10000 

SELECT dbms_metadata.get_ddl('TABLE', 'MY-TABLE-NAME') 
FROM dual; 

或者,包括TOAD和企業管理器在內的許多GUI工具都有DDL生成器。

0

更一般的解決方案是使用all_objects和all_users視圖轉儲過濾的表的列表,但也轉儲其他類型的對象。例子作品對我來說

select dbms_metadata.GET_DDL(u.object_type,u.object_name, u.owner) 
from all_objects u 
where 1=1 
and u.object_type in ('TABLE', 'INDEX', 'FUNCTION', 'PROCEDURE', 'VIEW', 
         'TYPE', 'TRIGGER', 'SEQUENCE') 
and u.object_name not like 'SYS_%' 
and owner in (
    select username from dba_USERS where DEFAULT_TABLESPACE not like 'SYS%' 
    and username not in ('ORACLE_OCM') 
    and username not like '%$%' 
) 
; 

參考文獻: