SQLOAD進行資料匯入

2021-10-01 16:02:17 字數 1200 閱讀 9432

在使用文字進行大資料量匯入的時候,很容易導致記憶體溢位的問題。

sqlload作為oracle官方提供的大資料量的匯入放大,在效率上具有很大的優勢

sqlload存在的不足

只支援文字型別(.txt,.csv)的匯入,不支援excel等的檔案的匯入

對於伺服器環境的要求較高(需要至少安裝oracle的client)

使用sqlldr匯入需要準備兩個檔案乙個是控制匯入的ctl檔案和儲存資料的文字檔案

sqlldr user/password control=test.ctl skip=1 load=200000 errors=100 rows=1000  bindsize=33554432

引數解析userid:後邊跟的是資料庫的名稱以及密碼

control: 後邊跟的是ctl檔案的路徑

log:表示輸出的日誌

rows:表示一次載入的行數,預設值為64,此處設定為***

load:表示並不匯入所有的資料,只匯入跳過skip引數後的***x條資料

errors:表示出錯***次後,停止載入

bindsize:表示每次提交記錄緩衝區的大小,預設256k

ctl的基本格式

引數介紹skip:從第幾行開始匯入

rows:表示匯入幾行進行一次事務的提交,預設為64行

infile:要匯入的資料檔案的位置(如果多個檔案使用同乙個ctl,可以寫多個infile)

insert               裝載空表 如果原先的表有資料 sqlloader會停止 預設值

replace             原先的表有資料 原先的資料會全部刪除

truncate            指定的內容和replace的相同 會用truncate語句刪除現存資料

characterset :表示匯入的資料的編碼的格式,預設為utf8  

fields terminated by ',':字段之間的分隔值為逗號

terminated by whitespace :以空格為分割符

optionally enclosed by :字段放在什麼中間

trailing nullcols:表示空值也可以匯入

儲存過程進行資料合併匯入

create procedure sp mytest1 mytype int asdeclare pro varchar 50 declare pro1 varchar 50 select pro typename from table1 where id mytype declare wu cur...

快速進行資料抽取

今天做資料抽取的時候一直在用select,但是後來發現有的不能抽取出來,後來發現xpath更快速 首先給pom.xml加入依賴 cn.wanghaomiao jsoupxpath 2.2這裡面可以用copy path來代替要抽取的資料 public static string rules7 stri...

LINQ 進行資料轉換

可以使用 linq 查詢建立包含元素的輸出序列,這些元素來自多個輸入序列。以下示例演示如何組合兩個記憶體中資料結構,但相同的原則可應用於組合來自 xml 或 sql 或資料集源的資料。假設以下兩種類型別 class student public string last public int id p...