新聞中心
在日常工作中,我們需要經(jīng)常導(dǎo)出Oracle數(shù)據(jù)庫中的表信息,以備日后使用或者導(dǎo)入到其他數(shù)據(jù)庫系統(tǒng)中。本文將會解析Oracle 數(shù)據(jù)庫表的導(dǎo)出方法,為大家提供參考。

創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站設(shè)計、做網(wǎng)站的網(wǎng)絡(luò)公司。作為專業(yè)的建站公司,創(chuàng)新互聯(lián)公司依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣及網(wǎng)站設(shè)計開發(fā)服務(wù)!
一、Oracle數(shù)據(jù)庫表的導(dǎo)出方式
1.使用SQL Developer導(dǎo)出
Oracle推薦使用SQL Developer進(jìn)行數(shù)據(jù)表導(dǎo)出,SQL Developer是Oracle Database的一個免費(fèi)的可視化工具,它有一個非常方便的導(dǎo)出向?qū)А?/p>
在SQL Developer中連接到需要導(dǎo)出表的數(shù)據(jù)庫。在對象瀏覽器中找到需要導(dǎo)出的表,右鍵單擊表并選擇“導(dǎo)出數(shù)據(jù)”選項。此時會打開“導(dǎo)出向?qū)А保趯?dǎo)出向?qū)У闹徊街?,選擇“自定義”選項,并填寫相關(guān)參數(shù),如導(dǎo)出數(shù)據(jù)類型、目標(biāo)文件夾、文件名等。
在導(dǎo)出向?qū)У牡诙街?,選擇需要導(dǎo)出的表,并選擇導(dǎo)出的數(shù)據(jù)格式。在選擇完畢后,可以繼續(xù)單擊“下一步”,然后在導(dǎo)出向?qū)У淖詈笠徊街校梢赃x擇執(zhí)行選項。單擊“完成”按鈕,將會開始導(dǎo)出。
2.使用命令行導(dǎo)出
除了使用SQL Developer導(dǎo)出外,還可以通過命令行方式進(jìn)行表導(dǎo)出。在命令行中,使用exp命令可以導(dǎo)出數(shù)據(jù)表,使用如下命令:
exp system/password file=d:\test.dmp tables=(table1,table2) grants=y
其中,exp是導(dǎo)出數(shù)據(jù)的命令;system是數(shù)據(jù)庫管理員名稱;password是管理員密碼;file是導(dǎo)出數(shù)據(jù)的文件;tables是需要導(dǎo)出的表名,多個表名用逗號隔開;grants=y表示將用戶之間的跨庫訪問權(quán)限導(dǎo)出。
二、Oracle 數(shù)據(jù)庫表的導(dǎo)出注意事項
1.導(dǎo)出表的數(shù)據(jù)類型選擇
在導(dǎo)出數(shù)據(jù)庫表的時候,需要選擇需要導(dǎo)出的數(shù)據(jù)類型。因?yàn)椴煌臄?shù)據(jù)類型,導(dǎo)出的文件格式也是不同的。比如,導(dǎo)出文件選擇CSV格式,而表中有LOB字段,那么借助CSV格式就無法正確導(dǎo)出LOB類型的數(shù)據(jù)。
2.導(dǎo)出文件命名規(guī)范
在導(dǎo)出文件命名時,請確保命名規(guī)范,避免命名不規(guī)范導(dǎo)致導(dǎo)出的文件無法識別或操作??梢圆捎靡韵旅?guī)范:
Exp_日期_表名_導(dǎo)出類型
例如:Exp_20230216_person_info_bak,其中“person_info”是需要導(dǎo)出的表名,“bak”是導(dǎo)出類型,表示備份。
3.導(dǎo)出文件路徑規(guī)范
在導(dǎo)出文件路徑的選擇上,不要選擇與數(shù)據(jù)庫文件路徑相同的路徑。因?yàn)檫@會增加數(shù)據(jù)庫文件的IO負(fù)擔(dān),可能會導(dǎo)致數(shù)據(jù)庫性能下降。
4.導(dǎo)出前先清空表數(shù)據(jù)
在導(dǎo)出每個數(shù)據(jù)表之前,更好先清空表中的數(shù)據(jù)。這是因?yàn)?,?shù)據(jù)表導(dǎo)出將會導(dǎo)出表中現(xiàn)有的數(shù)據(jù)。如果表中已經(jīng)存在數(shù)據(jù),更好先清除表中的數(shù)據(jù),然后再導(dǎo)出表。
5.導(dǎo)出前提前約定好導(dǎo)出選項
在使用SQL Developer或命令行進(jìn)行數(shù)據(jù)表導(dǎo)出時,更好先與相關(guān)人員(如研發(fā)人員或業(yè)務(wù)部門)事先約定好導(dǎo)出選項。目的是在導(dǎo)出選項上達(dá)成一致,避免由于誤操作或數(shù)據(jù)格式等原因?qū)е聰?shù)據(jù)導(dǎo)出錯誤。
結(jié)語
本文解析了Oracle 數(shù)據(jù)庫表的導(dǎo)出方法,主要包括SQL Developer和命令行兩種方式。通過合理選擇數(shù)據(jù)類型、命名規(guī)范、路徑規(guī)范、表的數(shù)據(jù)清空等措施,在數(shù)據(jù)表導(dǎo)出時可以減少不必要的錯誤和失誤。希望本文能夠幫助到大家,也提醒大家在導(dǎo)出數(shù)據(jù)時格外小心。
相關(guān)問題拓展閱讀:
- oracle11g導(dǎo)出數(shù)據(jù)庫時怎么設(shè)置把空表也導(dǎo)出
oracle11g導(dǎo)出數(shù)據(jù)庫時怎么設(shè)置把空表也導(dǎo)出
1 將數(shù)據(jù)庫TEST完全導(dǎo)出,用扮兆迅戶名system 密碼猜殲manager 導(dǎo)出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 將數(shù)據(jù)庫中system用戶與sys用戶的表廳此導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
1、Oracle11g默認(rèn)對空表不分備弊配segment,故使用exp導(dǎo)出Oracle11g數(shù)據(jù)庫時,空型兆表不會導(dǎo)出。
2、設(shè)置deferred_segment_creation 參數(shù)為FALSE后,無論是空表還是非空表,都分配segment。
在sqlplus中,執(zhí)行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
該值設(shè)置后只對后面新增的表產(chǎn)生作用,對之前建立的空表不起作用。
3、可以使用手工為空表分卜滾租配Extent的方式,來解決導(dǎo)出之前建立的空表的問題。說明如下:
3.1 使用ALLOCATE EXTENT的說明
使用ALLOCATE EXTENT可以為數(shù)據(jù)庫對象分配Extent。其語法如下:
ALLOCATE EXTENT { SIZE integer | DATAFILE ‘filename’ | INSTANCE integer }
可以針對數(shù)據(jù)表、索引、物化視圖等手工分配Extent。
ALLOCATE EXTENT使用樣例:
ALLOCATE EXTENT
ALLOCATE EXTENT(SIZE integer )
ALLOCATE EXTENT(DATAFILE ‘filename’)
ALLOCATE EXTENT(INSTANCE integer)
ALLOCATE EXTENT(SIZE integer DATAFILE ‘filename’)
ALLOCATE EXTENT(SIZE integer INSTANCE integer)
針對數(shù)據(jù)表操作的完整語法如下:
ALTER TABLE table_name ALLOCATE EXTENT | DATAFILE ‘filename’ | INSTANCE integer})>
故,需要構(gòu)建如下樣子簡單的SQL命令:
alter table aTabelName allocate extent
3.2 構(gòu)建對空表分配空間的SQL命令,
查詢當(dāng)前用戶下的所有空表(一個用戶更好對應(yīng)一個默認(rèn)表空間)。命令如下:
SQL>select table_name from user_tables where NUM_ROWS=0;
根據(jù)上述查詢,可以構(gòu)建針對空表分配空間的命令語句,如下:
SQL>Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0
批量輸出上述生成的SQL語句,建立C:\createsql.sql,其內(nèi)容如下:
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;
spool off;
執(zhí)行C:\createsql.sql,命令如下:
SQL>@ C:\createsql.sql;
執(zhí)行完畢后,得到C:\allocate.sql文件。
打開該文件會看到,已經(jīng)得到對所有空表分配空間的命令SQL語句。
3.4 執(zhí)行SQL命令,對空表分配空間:
執(zhí)行C:\allocate.sql,命令如下:
SQL>@ C:\allocate.sql;
執(zhí)行完畢,表已更改。
3.4 此時執(zhí)行exp命令,即可把包括空表在內(nèi)的所有表,正常導(dǎo)出。
另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區(qū)分大小寫的。
在Oracle10g中及以前,密碼中的字母大小寫無所謂。
1、Oracle11g默認(rèn)對空表不分配segment,故使用exp導(dǎo)出Oracle11g數(shù)據(jù)庫時,空表不會導(dǎo)出。
2、設(shè)置deferred_segment_creation 參數(shù)為FALSE后,無論是空表還是非空表,都分配segment。
在sqlplus中,執(zhí)行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
該值設(shè)置后只大閉拿對后面新增的表產(chǎn)生作用,對之前建立的空表不起作用。
3、可以使用手工為空表分配Extent的方式,來解決導(dǎo)出之前建立的空表的問題。說明如下:
3.1 使用ALLOCATE EXTENT的說明
使用ALLOCATE EXTENT可以為數(shù)據(jù)庫對象分配Extent。其語法如下:
ALLOCATE EXTENT { SIZE integer | DATAFILE ‘filename’ | INSTANCE integer }
可以針對數(shù)據(jù)表、索引、物化視圖等手工分配Extent。
ALLOCATE EXTENT使用樣例:
ALLOCATE EXTENT
ALLOCATE EXTENT(SIZE integer )
ALLOCATE EXTENT(DATAFILE ‘filename’)
ALLOCATE EXTENT(INSTANCE integer)
ALLOCATE EXTENT(SIZE integer DATAFILE ‘filename’)
ALLOCATE EXTENT(SIZE integer INSTANCE integer)
針對數(shù)據(jù)表操作的完整語法如下:
ALTER TABLE table_name ALLOCATE EXTENT | DATAFILE ‘filename’ | INSTANCE integer})>
故,需要構(gòu)建如下樣子簡單的SQL命令:
alter table aTabelName allocate extent
3.2 構(gòu)建對空表分配態(tài)隱空間的SQL命令,
查詢當(dāng)前用戶下的所有空表(一個用戶更好對應(yīng)一個默認(rèn)表空間)。命令如下:
SQL>select table_name from user_tables where NUM_ROWS=0;
根據(jù)上述查詢,可以構(gòu)建針對空表分配空間的命令語句,如下:
SQL>Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0
批量輸出上述生成的SQL語句,建立C:\createsql.sql,其內(nèi)容如下:
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
Select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;
spool off;
執(zhí)行C:\createsql.sql,命令如下:
SQL>@ C:\createsql.sql;
執(zhí)行完畢后,得到C:\allocate.sql文件。
打開該文件會看到,已經(jīng)得到對所有空表分配空間的命令SQL語句。
3.4 執(zhí)行SQL命令,對空表分配空間:
執(zhí)行C:\allocate.sql,命令如下:
SQL>@ C:\allocate.sql;
執(zhí)行完畢,表已更改。
3.4 此時執(zhí)行exp命令,即可把包括空表在內(nèi)的滾搭所有表,正常導(dǎo)出。
另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區(qū)分大小寫的。
在Oracle10g中及以前,密碼中的字母大小寫無所謂。
看看拍臘鉛襲好這個文檔局鍵,一目了然
orcle 導(dǎo)出表數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于orcle 導(dǎo)出表數(shù)據(jù)庫,Oracle 數(shù)據(jù)庫表的導(dǎo)出方法解析,oracle11g導(dǎo)出數(shù)據(jù)庫時怎么設(shè)置把空表也導(dǎo)出的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機(jī)房服務(wù)器托管租用。
本文名稱:Oracle 數(shù)據(jù)庫表的導(dǎo)出方法解析 (orcle 導(dǎo)出表數(shù)據(jù)庫)
URL分享:http://m.5511xx.com/article/ccdospg.html


咨詢
建站咨詢
