oracle通過load data 將資料匯入表中通過儲存過程進行批量處理
說明:雖然沒圖,但文字表述很清楚,自己做過的專案留著備用(這只是初版,比較繁瑣,但很明確)
準備工作做完之後,後期可直接使用。如後期excel資料有變更,只需改動對應的部分即可,不涉及改動的可直接使用。
實際操作步驟
- 依照excel資料模版格式準備好建表語句,將中間過渡表在對應12家村行資料庫中分別建立。(二步驟中的第2小步)
- 將excel補錄資料轉換成txt檔案匯入中間過渡表。(二步驟中的第3小步)
- 將提前準備好的儲存過程匯入各村行對應資料庫。(四步驟中的2小步)
- 各家村行執行匯入的儲存過程。(三步驟中的5小步)
- 完畢
注意:12家行資料庫獨立登入,需切換使用者分別登入,建議一家行執行完全部指令碼再切換。
- 準備階段(以鎮賚(100)的貸款投向(1001)為例)
- 將對應Excel文件轉為.csv格式(必須嚴格按照下圖順序操作)
原始資料:
點選“WPS表格——》另存為——》(選擇你儲存的位置,後續做處理)”下圖紅框需格外注意,檔案型別必須為“CSV(逗號分隔)”,然後儲存。
出現下圖示識點選“確定”:
到此Excel轉.CSV檔案結束。
- 將.csv檔案轉為.txt檔案
找到剛轉的.CSV檔案:
給該檔案加字首(dhcc_),改字尾(.txt),出現下圖提示點選“是”。
開啟剛剛修改的檔案,格式如下:(注意將紅框那一行去掉,否則影響後期操作和資料的準確性)
下圖資料屬於正常資料。
到此,.CSV檔案轉為.txt檔案結束。
- 建立和dhcc_1001.txt對應中間過渡表:(注意欄位長度和型別)
- 建立和dhcc_1001.txt、中間過渡表dhcc_1001對應的dhcc_1001.ctl檔案(dhcc_1001.txt和dhcc_1001.ctl這倆檔案路徑需一致)注意圖中描述
- 建立在管理員視窗中呼叫dhcc_1001.ctl的命令
6.將中間過渡表的資料更新到對應資料庫的表中(這裡更新了合同表、申請表、臺賬表)
重複1——》6的步驟,將12家行所有Excel轉換為“.txt”檔案。建立對應的建表語句。建立“.txt”檔案對應的“.ctl”檔案和呼叫“.ctl”檔案的管理員視窗命令。
- “將中間過渡表的資料更新到對應資料庫的表中”的SQL語句和其他(無法進行批量處理的)SQL語句整合到一起(12家行分開)
下方的other.sql檔案包含所有鎮賚(100)需處理的資料,下方有其他資料沒截全。
到此,前期準備工作都已做完。
二.將補錄資料匯入中間過渡表
1.登陸對應資料庫:(比如鎮賚(100))
- 將寫好的建表SQL在對應鎮賚(100)庫中執行
- 往中間過渡表中匯入補錄資料
找到對應鎮賚(100)的命令語句:(下圖只是例項,具體參照實際做相應修改)。
在Windows系統的執行程式中輸入“cmd”,回車:
將命令語句複製,然後在管理員視窗中點選滑鼠右鍵——》貼上——》回車,即可將對應補錄資料直接匯入到對應中間過渡表中。
注意:每次只能執行一條“sqlldr”,一條一條複製、貼上。每家行執行該命令前必須先將對應中間過渡表建立。
到此,中間過渡表的補錄資料匯入完成
- 建立和使用儲存過程
- 登陸到對應行鎮賚(100)的資料庫,找到Procedures檔案,右鍵——》新建
如下圖:
- 點選確定,在begin和end之間將“準備階段的第7小步”中的指令碼貼上進來
- 如下圖,點選執行按鈕,即可編譯,待編譯完成,儲存過程也就建立成功
(提示:指令碼後需加commit,否則當儲存過程執行完需手動提交)
- 重新整理Procedures檔案,會出現剛剛建立的儲存過程
- 選中儲存過程“other”,右鍵——》測試,點選紅框中的執行按鈕,該儲存過程即可執行
到此,儲存過程的建立和使用已結束。
- 匯出和匯入儲存過程:每個行建一個儲存過程
- 匯出儲存過程:將剛剛建立的儲存過程other匯出到本地
工具——》匯出使用者物件——》選中該儲存過程——》選擇匯出路徑——》匯出
- 匯入儲存過程:將剛剛匯出的儲存過程匯入到資料庫
工具——》匯入表——》SQL插入——》在匯入檔案下方選擇本地的儲存過程——》匯入
儲存過程匯入之後就可在Procedures檔案下找到該儲存過程。如果需執行該儲存過程,進行“三步驟中的第5小步”操作即可。