日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE数据加载加本,使用oracle sqlldr加载数据

發布時間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE数据加载加本,使用oracle sqlldr加载数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

oracle sqlldr 實驗

tab 分隔處理,空格分隔處理,逗號分隔處理

日期列處理

截斷處理

包含雙引號處理

列為空處理

1.數據文件data.txt

2012-01-01?10:01:01.001?"1"a"cc"

2012-02-01?10:01:01.002?"2"bc"dd"

2012-03-01?10:01:01.003?"3"cde"ee"

dd

2012-04-01?10:01:01.004?"4"defg"ff"

2012-05-01?10:01:01.005?"5"efgh"gg"

2.控制文件ctl.txt

loaddata

infile?'data.txt'--要導入數據的文件名,也可以是絕對路徑

BADFILE?'bad.bad'--指定出錯的文件名(出錯的記錄會輸出到這個文件)

DISCARDFILE?'disc.dsc'--指不合條件的記錄會輸出到這個文件

truncateintotablet_sqlldr--truncate?table?t_sqlldr后,再導入數據

WHEN(id?!='1')AND(col2?!='cc')--指定哪些記錄需要導入,如果導入全部記錄可省略

fields?terminated?by'?'--數據列以空格分隔

optionally?enclosed?by'"'--如果數據文件中的各數據列以逗號包圍,則可以添加此選項,否則可不添加

(col_date?position(1:19)?date"yyyy-mm-dd?hh24:mi:ss",--指定數據文件中日期/時間格式,并只取前19個字符

field1?filler,????????????????????????????????????????????--數據文件中的日期不僅只有19個字符,把后面的字符過濾掉

id??,

col1?,

col2

)

3.執行sqlldr

F:\sqlldr_test1>sqlldr?t_sqlldr/t_sqlldr@oralife?control=ctl.txt?log=log.txt

SQL*Loader:?Release?10.2.0.1.0?-?Production?on星期六?9月?1?13:10:45?2012

Copyright?(c)?1982,?2005,?Oracle.??Allrights?reserved.

達到提交點?-?邏輯記錄計數?5

達到提交點?-?邏輯記錄計數?6

4.查看數據,可知我們需要的數據已經加載了

SQL>?desct_sqlldr

名稱??????????????????????????????????????是否為空??類型

-----------------------------------------?--------?----------------------------

ID?????????????????????????????????????????????????NUMBER(38)

COL1???????????????????????????????????????????????VARCHAR2(10)

COL_DATE???????????????????????????????????????????DATE

COL2???????????????????????????????????????????????VARCHAR2(5)

SQL>?select*fromt_sqlldr;

ID?COL1???????COL_DATE????????????COL2

----------?----------?-------------------?-----

2?bc?????????2012-02-01?10:01:01?dd

3?cde????????2012-03-01?10:01:01?ee

4?defg???????2012-04-01?10:01:01?ff

5?efgh???????2012-05-01?10:01:01?gg

日志文件的輸出log.txt

SQL*Loader: Release 10.2.0.1.0 - Production on 星期六 9月 1 13:10:45 2012

Copyright (c) 1982, 2005, Oracle.? All rights reserved.

控制文件:????? ctl.txt

數據文件:????? data.txt

錯誤文件:??? bad.bad

廢棄文件:??? disc.dsc

(可廢棄所有記錄)

要加載的數: ALL

要跳過的數: 0

允許的錯誤: 50

綁定數組: 64 行, 最大 256000 字節

繼續:??? 未作指定

所用路徑:?????? 常規

表 T_SQLLDR,已加載在ID != 0X31(字符 '1')

和COL2 != 0X6363(字符 'cc')

插入選項對此表 TRUNCATE 生效

列名??????????????????????? 位置????? 長度? 中止 包裝數據類型

------------------------------ ---------- ----- ---- ---- ---------------------

COL_DATE???????????????????????????? 1:19??? 19? WHT O (") DATE yyyy-mm-dd hh24:mi:ss

FIELD1?????????????????????????????? NEXT???? *? WHT O (") CHARACTER

(FILLER FIELD)

ID?????????????????????????????????? NEXT???? *? WHT O (") CHARACTER

COL1???????????????????????????????? NEXT???? *? WHT O (") CHARACTER

COL2???????????????????????????????? NEXT???? *? WHT O (") CHARACTER

記錄 1: 被廢棄 - 所有 WHEN 子句失敗。

記錄 4: 被拒絕 - 表 T_SQLLDR 的列 FIELD1 出現錯誤。

在邏輯記錄結束之前未找到列 (使用 TRAILING NULLCOLS)

表 T_SQLLDR:

4 行 加載成功。

由于數據錯誤, 1 行 沒有加載。

由于所有 WHEN 子句失敗, 1 行 沒有加載。

由于所有字段都為空的, 0 行 沒有加載。

為綁定數組分配的空間:???????????????? 50944 字節 (64 行)

讀取?? 緩沖區字節數: 1048576

跳過的邏輯記錄總數:????????? 0

讀取的邏輯記錄總數:???????????? 6

拒絕的邏輯記錄總數:????????? 1

廢棄的邏輯記錄總數:??????? 1

從 星期六 9月? 01 13:10:45 2012 開始運行

在 星期六 9月? 01 13:10:45 2012 處運行結束

經過時間為: 00: 00: 00.14

CPU 時間為: 00: 00: 00.10

發生錯誤的記錄會輸出到錯誤文件bad.bad中

dd

不合條件的記錄會輸出到disc.dsc中 2012-01-01 10:01:01.001 "1" a "cc" 如果數據文件中的數據以tab分隔,使用 terminated by X'09' 或 terminated by whitespace。 如果數據文件都是固定長度的數據,可以使用position(n1:n2)選項。 在執行sqlldr時指定direct=true 以直接路徑加載數據。

總結

以上是生活随笔為你收集整理的ORACLE数据加载加本,使用oracle sqlldr加载数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。