實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

本篇文章給大家?guī)砹岁P(guān)于oracle的相關(guān)知識(shí),其中主要整理了數(shù)據(jù)表導(dǎo)入導(dǎo)出的相關(guān)問題,大量數(shù)據(jù)需要遷移是選擇“導(dǎo)出表”和“導(dǎo)入表”的oracle方法,不需要寫表結(jié)構(gòu),下面一起來看一下,希望對(duì)大家有幫助。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

推薦教程:《oracle

? ? 0.背景:突然接到居家辦公的通知,工作用數(shù)據(jù)全部在內(nèi)網(wǎng),需要全部拷出帶走,最大的單個(gè)表3.7G左右。根據(jù)往常經(jīng)驗(yàn)將oracle庫(kù)中表導(dǎo)出為xlsx(方便與同事溝通使用),發(fā)現(xiàn)效率太低,且受制于數(shù)據(jù)量太大,經(jīng)常報(bào)錯(cuò)無法導(dǎo)出。后來嘗試導(dǎo)出為csv文件,提示已導(dǎo)出完成,但等重新找臺(tái)電腦導(dǎo)入時(shí)發(fā)現(xiàn)數(shù)據(jù)缺失嚴(yán)重,無法使用。

1.原有的笨方法

? ? 在對(duì)象窗口中右擊需要導(dǎo)出的表,點(diǎn)擊查詢數(shù)據(jù),點(diǎn)擊csv文件或excel文件。通常使用的都是這種方法,查詢結(jié)果很直觀,適合小數(shù)據(jù)量。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

1.Oracle數(shù)據(jù)表導(dǎo)出

導(dǎo)出表工具

? ? 在PL/SQL中打開方式有兩種,方法一為在對(duì)象窗口中右擊需要導(dǎo)出的表,點(diǎn)擊導(dǎo)出數(shù)據(jù),彈出導(dǎo)出表窗口,方法二為點(diǎn)擊PL/SQL頁(yè)面頂部的工具,點(diǎn)擊導(dǎo)出表,彈出導(dǎo)出表窗口。導(dǎo)出表工具可批量導(dǎo)出多個(gè)表

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

? ? ?在導(dǎo)出表窗口中,具體的導(dǎo)出方法有三種,三種方式都能導(dǎo)出表結(jié)構(gòu)和數(shù)據(jù)

(1)Oracle導(dǎo)出

? ? “Oracle導(dǎo)出”的導(dǎo)出結(jié)果是dmp格式的二進(jìn)制文件,無法預(yù)覽,但速度快,可以跨平臺(tái),后續(xù)打算以這種方法為主。第一個(gè)dmp文件3.61G左右,導(dǎo)出時(shí)間3分鐘。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(2)SQL插入

? ? “SQL插入”的導(dǎo)出結(jié)果為sql格式的文件,可以以文本格式進(jìn)行預(yù)覽,但是速度沒有“Oracle導(dǎo)出”快。對(duì)于dmp格式3.61G的文件,導(dǎo)出時(shí)間14分鐘,大小9.34G。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(3)PL/SQL Developer

? ? “PL/SQL Developer”的導(dǎo)出結(jié)果是pde格式的文件,這是PL/SQL自由的文件格式,不可以以文本格式進(jìn)行預(yù)覽,速度

? ? 對(duì)于dmp格式3.61G的文件,導(dǎo)出時(shí)間10分鐘,大小0.4G。數(shù)據(jù)量太小,不太相信全部拷出,但日志提示條數(shù)又與數(shù)據(jù)表一致

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

2.Oracle數(shù)據(jù)表導(dǎo)入

ODBC導(dǎo)入器

? ? ODBC的意思應(yīng)該是Open Database Connectivity(開放數(shù)據(jù)互聯(lián))。我經(jīng)常使用ODBC導(dǎo)入器導(dǎo)入EXCEL文檔和ACCESS數(shù)據(jù)庫(kù)表。使用ODBC導(dǎo)入器導(dǎo)入表需要提前定義好表結(jié)構(gòu)。

(1)新建表

? ? 文件-新建-創(chuàng)建表,設(shè)置表名稱和列??蛇m當(dāng)添加備注信息,方便后續(xù)使用,列設(shè)置時(shí)類型一定要有,盡量設(shè)置大一點(diǎn),防止后續(xù)導(dǎo)入時(shí)出錯(cuò),可點(diǎn)擊查看SQL按鈕,顯示創(chuàng)建表的SQL語句,方便下次直接執(zhí)行代碼創(chuàng)建表。實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(2)打開ODBC導(dǎo)入器

? ? 點(diǎn)擊PL/SQL頁(yè)面頂部的“工具”,點(diǎn)擊“ODBC導(dǎo)入器”,彈出ODBC導(dǎo)入器窗口

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(3)選擇需要導(dǎo)入的表

? ? 用戶/系統(tǒng)DSN選擇“Excel Files”,點(diǎn)擊連接,選擇需要導(dǎo)入的表。選擇需要導(dǎo)入的具體sheet,并預(yù)覽

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(4)確定Oracle對(duì)應(yīng)的位置

? ? 選擇所有者,表,查看字段匹配情況,對(duì)于不能自動(dòng)匹配的字段,手動(dòng)在右側(cè)窗口中選擇對(duì)應(yīng)的字段和字段類型,點(diǎn)擊“導(dǎo)入”按鈕導(dǎo)入數(shù)據(jù)。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

文本導(dǎo)入器

? ? 顧名思義,文本導(dǎo)入器導(dǎo)入的是文本格式的文件,我通常用文本導(dǎo)入器導(dǎo)入csv格式的文件

(1)新建表,具體方法與ODBC導(dǎo)入器一致

(2)打開文本導(dǎo)入器

點(diǎn)擊PL/SQL頁(yè)面頂部的“工具”,點(diǎn)擊“文本導(dǎo)入器”,彈出文本導(dǎo)入器窗口

(3)選擇需要導(dǎo)入的表

點(diǎn)擊選擇文件按鈕,選擇確定需要導(dǎo)入的文本文件并進(jìn)行預(yù)覽

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(4)確定Oracle對(duì)應(yīng)的位置

? ? 選擇所有者,表,查看字段匹配情況,對(duì)于不能自動(dòng)匹配的字段,手動(dòng)在右側(cè)窗口中選擇對(duì)應(yīng)的字段和字段類型,點(diǎn)擊“導(dǎo)入”按鈕導(dǎo)入數(shù)據(jù)。

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

導(dǎo)入表工具?

? ? 點(diǎn)擊PL/SQL頁(yè)面頂部的工具,點(diǎn)擊導(dǎo)入表,彈出導(dǎo)入表窗口

(1)Oracle導(dǎo)入

? ? 選擇需要導(dǎo)入的dmp文件,點(diǎn)擊“導(dǎo)入”按鈕,最下方有導(dǎo)入完成提示。導(dǎo)入完成后可在最右側(cè)日志頁(yè)查看詳細(xì)的導(dǎo)入結(jié)果

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(2)SQL插入

? ? 選擇需要導(dǎo)入的sql文件,點(diǎn)擊“導(dǎo)入”按鈕,會(huì)彈出sqlplus.exe執(zhí)行程序窗口,顯示導(dǎo)入實(shí)時(shí)進(jìn)度。導(dǎo)入完成后可在最右側(cè)日志頁(yè)查看詳細(xì)的導(dǎo)入結(jié)果

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

(3) PL/SQL Developer

? ? 選擇需要導(dǎo)入的pde文件,點(diǎn)擊“導(dǎo)入”按鈕,最下方有導(dǎo)入完成提示。導(dǎo)入完成后可在最右側(cè)日志頁(yè)查看詳細(xì)的導(dǎo)入結(jié)果。速度真的慢,比SQL插入慢

實(shí)例詳解Oracle數(shù)據(jù)表導(dǎo)入導(dǎo)出

3.總結(jié)

(1)日常小數(shù)據(jù)量需要跟其他人交互的就用導(dǎo)出查詢結(jié)果為xlsx格式

(2)ODBC導(dǎo)入器和文本導(dǎo)入器需要提前寫好表結(jié)構(gòu)

(3)大量數(shù)據(jù)需要遷移是選擇“導(dǎo)出表”和“導(dǎo)入表”的Oracle方法,不需要寫表結(jié)構(gòu)

(4)備份數(shù)據(jù)就直接導(dǎo)出為dmp格式的文件,需要恢復(fù)的時(shí)候再重新導(dǎo)入

推薦教程:《oracle

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享