① 如何在oracle中導出,導入數據
最近用到Oracle導出導入數據,在網上看了別人的一些文章,總結如下:
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 mpdir as 'd:\';
可以通過:select * from dba_directories;查看。
2、給將要進行數據導出的用戶授權訪問。
grant read,write on directory mpdir to test_expdp;
3、將數據導出
expdp test_expdp/test_expdp directory=mpdir mpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp
注意:這句話在cmd窗口中運行,並且最後不要加分號,否則會提示錯誤。因為這句話是操作系統命令而不是SQL。
impdp導入數據:
1、給將要進行數據導入的用戶授權訪問。
grant read,write on directory mpdir to test_impdp;
2、將數據導入
impdp test_impdp/impdp directory=mpdir mpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp
最後:這些內容是我在查找資料時找到,由於比較雜亂,現在稍作整理,方便以後查閱。同時,如果能給需要的人提供一些幫助,那就再好不過了。
② Oracle的導入導出命令是什麼
用exp、imp試試
導出全庫>>>>>>
導入:導入之前需創造一個空庫(可以和前一個庫名不一樣)、一個一樣的用戶
cmd>>
imp username/password@資料庫名稱 file=文件路徑 full=Y
導出:
exp username/password@資料庫名稱 file=文件路徑(生成的文件)
我導出的時候文件直接設成.sql,蠻好
導出部分表>>>>
打開cmd
導出表,確定監聽是否開啟,資料庫服務是否開啟
exp scott/tiger@orcl file=F:sign.sql tables=表名,表名 grants=y
導入表,確定新資料庫服務是否開啟
imp scott/tiger@資料庫名 file=F:sign.sql fromuser=scott ignore=y commit=y grants=y
③ 怎樣往oracle資料庫里導入數據
可用圖形界面或者命令導入:
圖形界面需要藉助第三方工具plsql,方法如下:
1、登錄到要導入的資料庫及用戶。
2、依次點擊「工具」——「導入表」。
imp被導入用戶名/密碼@實例名file=文件名.dmplog=日誌.dmpfromuser=導出用戶touser=導入用戶
輸入後按回車鍵,等待導入完成即可。
說明:第三點中中文部分,請根據實際情況填寫。
④ 如何將oracle資料庫導出導入資料庫
先確保你要導入的資料庫sid中有和你導出數據時所用的用戶和密碼.如果沒有請看
2),
1)進入命令控制台,
輸入:
imp
username/password@sid
file=/pathurl
full=y
其中username為用戶名,password為密碼,pathurl導出數據所在路徑,
如:
impr
scott/tiger@orcl
file=d:\data.dmp
需要注意的是,你要導入的表的表空間所屬的用戶和密碼必須和你要導入到的表空間所屬的用戶和密碼相同,就是你導出數據時用的哪個用戶,導入時也用哪個用戶,
2)
如果沒有這個用戶,創建用戶命令如下:
以sysdba
進入sqlplus,
create
user
identified
by
password;
grant
dba
to
user;
⑤ oracle中怎樣把表、表空間導入或導出
1、導出導入表和數據,最快的還是在plsql工具里選擇導出導入然後就可以了,第一步選擇導入。
⑥ oracle資料庫導入導出命令
你的例子來說,system/manager
為登錄的用戶名及密碼
file從該參數指定的文件導數據至DB,log保存導入期間的執行的信息
full全部導入,ignore=Y代表導入過程中碰到錯誤忽略
imp
help=y就可以看到所有的幫助了
⑦ 如何在Oracle中使用exp和imp導出,導入dmp資料庫文件
1、首先進入命令行,點擊開始,輸入cmd。
⑧ oracle怎樣導入資料庫
方法一:利用PL/SQL Developer工具導出:
菜單欄---->Tools---->Export Tables,如下圖,設置相關參數即可:
方法二:利用cmd的操作命令導出,詳情如下:
1:G:\Oracle\proct\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora文件,內容如下:
復制代碼 代碼如下:
CMSTAR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cmstar)
)
)
其中:CMSTAR為資料庫名,HOST為IP地址,所以可以仿效上面的例子手動添加數據錄連接。
2:用cmd進入命令行
輸入:tnsping cmstar
就是測試172.18.13.200是否連接成功
3:導入與導出,如下:
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2將資料庫中system用戶與sys用戶的表導出
expsystem/manager@TESTfile=d:\chu.dmpowner=(system,sys)
3將資料庫中的表table1、table2導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1,table2)
4將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1)query=\"wherefiled1like'00%'\"
上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了
數據的導入
1將D:\chu.dmp中的數據導入TEST資料庫中。
impsystem/manager@TESTfile=d:\chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上ignore=y就可以了。
2將d:\chu.dmp中的表table1導入
impsystem/manager@TESTfile=d:\chu.dmptables=(table1)
注意事項:導出dmp數據時需要有導出表的許可權的用戶,否則不能導出。
PL/SQL Developer是Oracle資料庫中用於導入或導出資料庫的主要工具,本文主要介紹了利用PL/SQL Developer導入和導出資料庫的過程,並對導入或導出時的一些注意事項進行了說明,接下來我們就一一介紹。
導出步驟:
1 tools ->export user object 選擇選項,導出.sql文件。
2 tools ->export tables-> Oracle Export 選擇選項導出.dmp文件。
導入步驟:
註:導入之前最好把以前的表刪除,當然導入另外資料庫除外。
1 tools->import tables->SQL Inserts 導入.sql文件。
2 tools->import talbes->Oracle Import然後再導入dmp文件。
一些說明:
Tools->Export User Objects導出的是建表語句(包括存儲結構)。
Tools->Export Tables裡麵包含三種導出方式,三種方式都能導出表結構以及數據,如下:
Oracle Export
Sql Insert
pl/sql developer
第一種是導出為.dmp的文件格式,.dmp文件是二進制的,可以跨平台,還能包含許可權,效率也很不錯,用得最廣 。
第二種是導出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數據量導入導出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能導出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三種是導出為.pde格式的,.pde為Pl/sql developer自有的文件格式,只能用Pl/sql developer自己導入導出,不能用編輯器查看。
⑨ ORACLE DMP導入資料庫命令
imp
system/manager
file=bible_db
log=dible_db
full=y
ignore=y
system/manager是
用戶名
和
密碼
file=bible_db
是要導入的文件
log=dible_db是生成
日誌
的
名稱
full=y是導入整個文件
ignore=y是忽略創建錯誤
詳細用法可在「運行」中輸入cmd進入
命令
窗口鍵入
'IMP
HELP=Y'
獲取幫助信息提示