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

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


咨詢
建站咨詢
