三 sqlldr初接觸

2021-06-01 08:22:08 字數 2018 閱讀 6692

只記錄一些學習時看到和自己用到的sqlldr 控制檔案內命令

定長字串處理

into table a

( col1 position(1:5),            --第1到第5,5個字元

col2 position(*+1,7),          --第6(5+1,*表示上乙個結束的位置,+1為偏移量)到第7,2個字元

...)

字串處理命令

舉例 ...

into table a

(a position(1:10),

b "substr(:a,1,2)"

)這裡""內可以加各種字串處理命令 substr replace 什麼的。轉意字元和c裡的一樣是/

跳過指定列 filler關鍵字

舉例...

into table a

(col1 filler,b,c)   --這裡的col1視為乙個變數名,在控制檔案中其他地方可以使用

分隔符 fields terminated by "," optionally enclosed by '"' 後半句是說""內的 ,就當資料處理了

舉例:  xx.dat 內容是 a,b,c,b

e,f,g,h

load data

infile xx.dat

into table a

fields terminated by ","    --這句我在自己用的時候一直都要直接跟著(col1,col2,col3,col4)這樣的,不跟就會報錯》.< 還要再看看..或者誰能告訴我

...跳過指定行 skip 配合load用

舉例 sqlldr control=***.ctl skip=1 load=10   --匯入2-11行 不指定load就是匯入到資料檔案結束

條件 when,這裡要注意的是多個條件 只支援and 不支援or

舉例:...

into table a

when col='a'

(col filler position(1:2),

col2 position(4:6),

...)

into table b

when col='b'

(col filler position(1:2),

col2 position(4:9),

...)

這個例子裡when分支語句和filler跳過的資料作為變數都有了~

但是奇怪的是,當用

into table a

when col='a'

fields terminated by ","

(col filler,

col2,

...)

into table b

when col='b'

fields terminated by ","

(col filler position(1:2),

col2 position(4:9),

...)

這種以逗號分隔的資料進行插入時,放在第二個分句上的表就死活都插入不進去了...誰來告訴我這個菜鳥一下呢...

infile屬性

fixinfile ***x.dat "fix n" 無**件怎麼回車換行,固定視為n個字元一行 固定長度字元檔案用

varinfile ***x.dat "var n" 行首指定長度,n預設5,小於40,在資料檔案中,每行用前n個字元表示當前行長度

----------以上兩種都不常用

strinfile ***x.dat "str 'x\n'" 在資料檔案中每行結束以 x 字元作為標記,執行時將其替換為\n 這個x可以是一般字元,也可以為2進製表示,如x''

可以提高匯入速度的引數

rows(預設64)

bindsize(預設256k,影響rows可設定的最大值)

direct(設為true可以提高速度,查了一下好像是說可以不通過select語句,直接匯入什麼的..好吧實際上是我在**看了一眼然後想回去找又找不到了..但是在有唯一索引時慎用

指標初接觸

指標是強大的c語言工具 指標指向位址 1.定義指標 使用指標之前要定義指標,與int,char,float類似的定義方式,不過要在定義型別和指標名之間加乙個 號來表示定義的是指標,不帶 號會導致定義的為變數而非對應型號的指標。2.初始化指標 使用指標之前還要初始化指標,否則指標有可能會覆蓋掉資料 我...

gdb除錯初接觸

之前面試的時候有遇到過乙個問題,當覆蓋率偏低的時候,對於測試用力無法覆蓋的部分,有沒有什麼辦法可以實現覆蓋,當時沒答上來,後來了解了可以通過gdb除錯的方法來實現 流程的控制。先來看一段 include includeint main void else return 0 這段 裡else裡的 是永...

DOS命令初接觸

首先是幾個最常見的命令 1 cd 顯示當前目錄,或者更改 但是想要轉向c盤的program files資料夾是,發現總是找不到檔案,後來發現,原來會預設到c盤的個人資料夾中 可以使用cd 命令,返回到最上級的目錄,即可以到c盤的目錄,可以在根目錄找 program files 資料夾 2 md ma...