歡迎使用CSDN markdown編輯器

2021-07-10 21:18:18 字數 2549 閱讀 5622

oracle匯出匯出有兩中方式:一、利用exp imp匯出匯入;二、利用oracel資料幫浦expdp impdp匯出匯入。

一、利用exp imp匯出匯入

exp imp 語法如下:

exp:

1) 將資料庫orcl完全匯出

exp system/manager@orcl file=d:\orcl_bak.dmp full=y

2) 將資料庫中system使用者的表匯出

exp system/manager@orcl file=d:\system_bak.dmp owner=system

3) 將資料庫中表table1,table2匯出

exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)

4) 將資料庫中的表customer中的字段mobile以」139」開頭的資料匯出

exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\」where mobile like 『139%』 \」

imp:

1) 將備份檔案bak.dmp匯出資料庫

imp system/manager@orcl file=d:\bak.dmp

如果資料表中表已經存在,會提示錯誤,在後面加上ignore=y就可以了。  

2) 將備份檔案bak.dmp中的表table1匯入

imp system/manager@orcl file=d:\bak.dmp tables=(table1)

exp imp匯出匯入資料方式的好處是只要你本地安裝了oracle客戶端,你就可以將伺服器中的資料匯出到你本地計算機。同樣也可以將dmp檔案從你本地匯入到伺服器資料庫中。但是這種方式在oracle11g版本中會出現乙個問題:不能匯出空表。oracle11g新增了乙個引數deferred_segment_creation,含義是段延遲建立,預設是true。當你新建了一張表,並且沒用向其中插入資料時,這個表不會立即分配segment。

解決辦法:

1、設定deferred_segment_creation引數為false後,無論是空表,還是非空表,都分配segment。

在sqlplus中,執行如下命令:

sql>alter system set deferred_segment_creation=false;

檢視:sql>show parameter deferred_segment_creation;

該值設定後,只對後面新增的表起作用,對之前建立的空表不起作用,並且注意要重啟資料庫讓引數生效。

2、使用 allocate exten

使用 allocate exten可以為資料庫物件分配extent,語法如下:

alter table table_name allocate extent

構建對空表分配空間的sql命令:

sql>select 『alter table 『||table_name||』 allocate extent;』 from user_tables where num_rows=0

批量生成要修改的語句。

然後執行這些修改語句,對所有空表分配空間。

此時用exp命令,可將包括空表在內的所有表匯出。

二、利用expdp impdp匯出匯入

在oracle10g中exp imp被重新設計為oracle data pump(保留了原有的 exp imp工具)

資料幫浦與傳統匯出匯入的區別;

1) exp和imp是客戶端工具,他們既可以在客戶端使用,也可以在服務端使用。  

2) expdp和impdp是服務端工具,只能在oracle服務端使用。

3) imp只適用於exp匯出檔案,impdp只適用於expdp匯出檔案。

expdp匯出資料:

1、為輸出路徑建立乙個資料庫的directory物件。

create or replace directory dumpdir as 『d:\』;

可以通過:select * from dba_directories;檢視。

2、給將要進行資料匯出的使用者授權訪問。

grant read,write on directory dumpdir to test_expdp;

3、將資料匯出

expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp

注意:這句話在cmd視窗中執行,並且最後不要加分號,否則會提示錯誤。因為這句話是作業系統命令而不是sql。

impdp匯入資料:

1、給將要進行資料匯入的使用者授權訪問。

grant read,write on directory dumpdir to test_impdp;

2、將資料匯入

impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...