oracle資料庫表結構匯出

2021-05-17 13:47:06 字數 1232 閱讀 9246

今天有同事打**要求要把oracle庫里的一張表的定義匯出個sql檔案,當時的第一反應就是要教他用exp/imp來獲得表結構定義檔案,在**裡面說了半天還是沒能教會他,只好跑了一趟機房。路上就在想,oracle真是討厭,為什麼不在企業管理器裡直接加上個表結構匯出的選項,還要害我這麼跑一趟,真是@@#!!@!#@@@@

問了下要匯出哪張表以後,先用exp只匯出該張表的結構定義

exp username/password rows=n file=export.dmp tables=*********

然後用imp生成表定義檔案

imp username/password rows=n file=export.dmp indexfile=schema.sql

結果出來了,可是還是很不爽,於是就在oem裡面到處點來點去,看看是不是有我疏漏的地方可以完成這個簡單的任務,還是不行。生氣,正當想放棄的時候,忽然想起oem裡面是可以選一張**,然後建立相同結構的一張表的。趕緊點了幾下,然後一點底下的顯示sql,表定義的sql語句出來了,直接暈倒,是為記之。

剛才查了下,oracle裡面是有定義dmbs_metadata.get_dll這個儲存過程來獲取表結構的sql語句的,使用方法如下

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

spool portal_schema.sql

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;

或者直接裝乙個pl/sql developer,裡面有提供相關的選項。

///用exp命令匯出表結構,不匯出表資料。只需在命令列裡加乙個引數rows=n即可。表示不匯出表資料。如果沒有tables,預設匯出全部使用者表

exp username/pwd@sid file=d:/data/bak.dmp owner=(user) rows=n  

如果要匯出特定幾個表,可加上tables=(emp,dept,mgr),特定的表名

oracle資料庫匯出表

1 exp username password rows n indexes n compress n buffer 65536 feedback 100000 owner username file d username date dmp 2 exp username password rows ...

資料庫遷移 oracle表結構資料匯出 匯入

dba登入 sqlplus as sysdba 建立表空間 create temporary tablespace db temp tempfile c oracledb oradata orcl db temp.dbf size 32m autoextend on next 32m maxsize...

Oracle匯出空表資料庫

經常我們在匯出資料庫進行備份的時候,會發現有些空表沒有匯出,如何匯出包含空表的完整資料庫呢?那麼請按照下面的方法進行即可。1.使用plsql工具,連線oracle資料庫 2.開啟乙個sql視窗,用以下這句查詢空表並生成執行命令 1select alter table table name alloc...