orcle複製表總結

1.如果在同一個數據庫下可採用:

如果新表不存在:

比如有一張表叫test,現在要複製表結構及表內數據,可執行代碼:

1
create table test as select from test;

這樣就把表結構連同數據一起復制了。

如果表存在,可用以下代碼:

1
2
insert into test1 select from test;
commit;

2.如果不在同一個數據庫下

方法一:

利用PL/SQL Developer工具導出:
菜單欄---->Tools---->Export Tables


步驟:

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自己導入導出,不能用編輯器查看。


方法二:

運用orcle命令:

數據導出:
1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2將數據庫中system用戶與sys用戶的表導出
expsystem/manager@TEST file=d:\daochu.dmpowner=(system,sys)
3將數據庫中的表table1、table2導出
exp system/manager@TEST file=d:\daochu.dmptables=(table1,table2)
4將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:\daochu.dmptables=(table1) query=\"wherefiled1like'00%'\"

上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了

數據的導入

1將D:\daochu.dmp中的數據導入TEST數據庫中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有點問題,因爲有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上ignore=y就可以了。

2將d:\daochu.dmp中的表table1導入
imp system/manager@TEST file=d:\daochu.dmptables=(table1)

注意事項:導入dmp數據時需要有導出表的權限的用戶,否則不能導出。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章