使用sqlldr導入文本數據到oracle

1.sqlldr介紹

用法: SQLLDR keyword=value [,keyword=value,...]
?
有效的關鍵字:
?
????userid -- ORACLE 用戶名/口令???????
???control -- 控制文件名???????????????
???????log -- 日志文件名???????????????????
???????bad -- 錯誤文件名??????????????????
??????data -- 數據文件名?????????????????
???discard -- 廢棄文件名
discardmax -- 允許廢棄的文件的數目???????? (全部默認)
??????skip -- 要跳過的邏輯記錄的數目? (默認 0)
??????load -- 要加載的邏輯記錄的數目? (全部默認)
????errors -- 允許的錯誤的數目???????? (默認 50)
??????rows -- 常規路徑綁定數組中或直接路徑保存數據間的行數
???????????????(默認: 常規路徑 64, 所有直接路徑)
??bindsize -- 常規路徑綁定數組的大小 (以字節計)? (默認 256000)
????silent -- 運行過程中隱藏消息 (標題,反饋,錯誤,廢棄,分區)
????direct -- 使用直接路徑???????????????????? (默認 FALSE)
???parfile -- 參數文件: 包含參數說明的文件的名稱
??parallel -- 執行并行加載??????????????????? (默認 FALSE)
??????file -- 要從以下對象中分配區的文件????
skip_unusable_indexes -- 不允許/允許使用無用的索引或索引分區? (默認 FALSE)
skip_index_maintenance -- 沒有維護索引, 將受到影響的索引標記為無用? (默認 FALSE)
commit_discontinued -- 提交加載中斷時已加載的行? (默認 FALSE)
??readsize -- 讀取緩沖區的大小?????????????? (默認 1048576)
external_table -- 使用外部表進行加載; NOT_USED, GENERATE_ONLY, EXECUTE? (默認 NOT_USED)
columnarrayrows -- 直接路徑列數組的行數? (默認 5000)
streamsize -- 直接路徑流緩沖區的大小 (以字節計)? (默認 256000)
multithreading -- 在直接路徑中使用多線程
?resumable -- 啟用或禁用當前的可恢復會話? (默認 FALSE)
resumable_name -- 有助于標識可恢復語句的文本字符串
resumable_timeout -- RESUMABLE 的等待時間 (以秒計)? (默認 7200)
date_cache -- 日期轉換高速緩存的大小 (以條目計)? (默認 1000)
no_index_errors -- 出現任何索引錯誤時中止加載? (默認 FALSE)
?
PLEASE NOTE: 命令行參數可以由位置或關鍵字指定
。前者的例子是 'sqlldr
scott/tiger foo'; 后一種情況的一個示例是 'sqlldr control=foo
userid=scott/tiger'。位置指定參數的時間必須早于
但不可遲于由關鍵字指定的參數。例如,
允許'sqlldr scott/tiger control=foo logfile=log', 但是
不允許'sqlldr scott/tiger control=foo log', 即使
參數'log'?的位置正確。

2.實戰

先有需求:

將000000_0.txt文件導入oracle數據庫

000000_0.txt大小:123MB,幾十萬行

000000_0.txt內容格式:

20160514|未知|未知|未知|3G|057431041116|55349|41116|28173301261774|460007863660008|1.224609375|13.0|\N|\N
20160514|HTC|手機|D728w|3G|057431001157|55097|1157|35153907023514|460006620667069|0.513671875|10.0|\N|\N
20160514|HTC|手機|D728w|3G|057431043861|55084|43861|35153907033487|460027685036740|2937.208984375|8052.0|\N|\N
20160514|HTC|手機|D728w|3G|057431003011|55084|3011|35153907033487|460027685036740|1.755859375|56.0|\N|\N


導入的數據庫表結構:


create table TEST201605
(SHI_JIAN,ZDCS,ZDFL,ZDXH,XQWLLX,XQWYBH,LAC,CI,IMEI,IMSI,THREEG_LL,THREEG_SZ,FOURG_LL
)



2.1編寫控制文件 load.ctl:

load data
CHARACTERSET UTF8 ?//查看下文件的編碼,設為同一個編碼
infile "E:\datafile\000000_0.txt" ? //只能一個個導入,可以把多個文件合并到一個里,然后導入
append
into table TEST201605
fields terminated by '|'
trailing nullcols
(
? ? --"時間",
? ? SHI_JIAN,
? ? ZDCS,
? ? ZDFL,
? ? ZDXH,
? ? XQWLLX,
? ? XQWYBH,
? ? LAC,
? ? CI,
? ? IMEI,
? ? IMSI,
? ? THREEG_LL,
? ? THREEG_SZ,
? ? FOURG_LL
)


2.2 windows下

dos命令窗,cd 到load.ctl所在目錄

使用命令:

sqlldr daily/mdasil@daily-74 control=load.ctl log=log.log bad=bad.log errors=5000 rows=1000 bindsize=10485760


linux:


load data
CHARACTERSET UTF8
infile "/datafile-import/000021_0.txt"
append
into table jingfen_201605_1415
fields terminated by '|'
trailing nullcols
(
? ? SHI_JIAN,
? ? ZDCS,
? ? ZDFL,
? ? ZDXH,
? ? XQWLLX,
? ? XQWYBH,
? ? LAC,
? ? CI,
? ? IMEI,
? ? IMSI,
? ? THREEG_LL,
? ? THREEG_SZ,
? ? FOURG_LL
)


oracle用戶下執行:


sqlldr daily/mdasil control=/datafile-import/ctl/44.ctl log=/datafile-import/log/log20160526.log ?bad=/datafile-import/log/bad20160526.log


rows與bindsize相關,rows默認64行,如果不修改bindsize,只修改rows無效。

bindsize --( 每次提交記錄的緩沖區的大小,字節為單位,默認256000)


dos窗口會打印:

達到提交點 - 邏輯記錄計數 441884
達到提交點 - 邏輯記錄計數 441954
達到提交點 - 邏輯記錄計數 442024
達到提交點 - 邏輯記錄計數 442094


sqllder 導入的時候,不支持中文列名,因為文件里的都是string,導入的表字段也要 字符串 類型 。

(可以控制類型,但是如果數據內容格式不對,導入出錯就比較麻煩,還是以string文本導入后,再修改表結構)


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539522.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539522.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539522.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mac os區別_SN及Mac地址燒錄

platform:RK3399 OS:Android 7.1 參考: 1.比特人生 https://blog.csdn.net/ielife/article/details/86719313 2.KrisFei https://blog.csdn.net/kris_fei/article/details/79447343?ops_request_misc%257B%2522request%255Fid%2522%253A%2522158883304619726869022990%2522%25…

linux 查看數據庫和表 mysql 命令

2019獨角獸企業重金招聘Python工程師標準>>> 查看是否有安裝數據庫 :rpm -qa|grep -i mysql 如圖已安裝: 未安裝: 查看MySQL版本的四種方法 1 在終端下執行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看…

php mvc 邏輯層在哪,mvc的業務邏輯應該放哪里?

背景: 基于laravel的后臺管理系統,CURD密集型業務問題:當直接在控制器方法中調用orm處理業務邏輯時,代碼復用性差,控制器層很肥嘗試解決1:新建一個model層,將原先在控制器中的處理邏輯移到mode…

servlet/filter/listener/interceptor區別與聯系

下面從幾個方面闡述一下題目中四個概念的區別與聯系: 1、概念 2、生命周期 3、職責 4、執行過程 一、概念: 1、servlet:servlet是一種運行服務器端的Java應用程序,具有獨立于平臺和協議的特性,并且可以動態的生成web頁…

電腦系統哪個最好用_袪痘袪痘印哪個產品最好 祛痘印最好用的產品十大推薦...

原標題:袪痘袪痘印哪個產品最好 祛痘印最好用的產品十大推薦痘痘下去了,痘印卻頑固不化。有些痘印如果不及時修復,會留下疤痕和坑。我們真的不敢去想他們。所以有痘印痘印的時候一定要及時使用護膚品,不要在臉上留下什么遺憾&…

python中集合符號,Python 集合符號

Android SDK Manager 無法下載更新,或者更新速度超慢,或者待安裝包列表不顯示解決方法: 轉自 http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html http://jingyan.baidu.com/artic ...AJAX學習AJAX即“Asynchronous Javascript And XML”(異…

五阿哥鋼鐵電商平臺Docker容器云平臺建設實踐——你想知道的都在這里!

前言 五阿哥鋼鐵電商平臺(www.wuage.com)是由鋼鐵行業第一的中國五礦與互聯網第一的阿里巴巴聯手打造,并充分運用雙方股東優勢資源,即:阿里巴巴在大數據、電商運營、互聯網產品技術上的巨大優勢,尤其是在B2…

oracle數據導入導出

一、exp/imp與expdp/impdp的區別 1:把用戶usera的對象導到用戶userb,用法區別在于fromuserusera touseruserb ,remap_schemausera:usera 。例如 imp system/passwd fromuserusera touseruserb file/oracle/exp.dmp log/oracle/exp.log; impdp system/passwd directo…

web瀏覽器_Web上的分享(Share)API

我認為Web Share API非常酷,簡而言之,它會利用您所使用的平臺上的原生共享功能(如果該平臺支持的話)。我喜歡這個:在iOS上激活的Web Share API遠遠不止這些東西:為什么?Web Share API只是幾行代碼。簡單!沒…

Oracle視圖添加約束,Oracle創建視圖的語法

Oracle創建視圖的語法導讀:就愛閱讀網友為大家分享了多篇關于 "oracle 創建序列語法" 資料,內容精辟獨到,非常感謝網友的分享,希望從中能找到對您有所幫助的內容。相關資料一 : Oracle 創建視圖的語法Oracle 創建視圖的…

linux壓縮和解壓縮命令

tar命令解包:tar zxvf FileName.tar打包:tar czvf FileName.tar DirNamegz命令解壓1:gunzip FileName.gz解壓2:gzip -d FileName.gz壓縮:gzip FileName.tar.gz 和 .tgz解壓:tar zxvf FileName.tar.gz壓縮&a…

【Java進階】Java Lambda 表達式、Stream API完整梳理

一、Lambda表達式 Lambda 表達式是一種匿名函數,它可以用來定義函數式接口的實現。Lambda 表達式可以用來簡化代碼,提高代碼的可讀性和可維護性。 1、Lambda 表達式 1.1、語法介紹 Lambda 表達式的語法如下: (parameters) -> express…

使用T-SQL語句操作數據表-刪除數據

1.使用 delete 語句刪除表中的數據&#xff1a;語法&#xff1a;delete from <表名> [where <刪除條件>]delete 是刪除的意思 where是選填內容可以不加&#xff0c;但是不加條件的話是刪除整個表 例子&#xff1a;delete from 成績表 where 姓名張三含義&#xff1…

Oracle expdp/impdp導出導入命令及數據庫備份

經常報錯&#xff1a; ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation 解決方法&#xff1a; 1、 CREATE OR REPLACE DI…

exfat單元分配要設置多少_微軟宣布,支持往Linux內核里添加exFAT存儲了!跨系統存儲的福音...

栗子 發自 凹非寺 量子位 報道 | 公眾號 QbitAIexFAT&#xff0c;是微軟開發的文件系統&#xff0c;為閃存而生。你的U盤、SD卡、手機等等存儲設備&#xff0c;能存4G以上的大文件&#xff0c;很大程度上是它的功勞。可exFAT一直是專有的&#xff0c;微軟手握多項專利。所以&am…

在linux中安裝oracle中文包,在Linux命令行下安裝Oracle 10g

Oracle 10g支持在命令行下用靜默模式(Silent)安裝&#xff0c;給那些沒有安裝圖形界面的Linux系統提供了極大的便利。下面以Fedora Core 6為例&#xff0c;介紹在命令行下安裝OracleOracle 10g的方法。1 安裝前的準備準備工作要用登錄為root用戶來進行。1.1 選擇安裝環境的語言…

Jetbrains 系 IDE 編輯器的代碼提示功能

著名的 Jetbrains 可謂編程界的一大福音&#xff0c;眾多有名代碼編輯器比如 ItelliJ IDEA、PHPStorm、WebStorm、PyCharm 等&#xff0c;均出自這家公司麾下。 對于中國的Java開發者來說&#xff0c;可能使用 Eclipse 的人最多。 使用Idea的程序員也不少, 而且每個人都在鼓吹其…

Oracle下的Databse,Instance,Schemas

1、DATABASE&#xff0c;對oracle而言&#xff0c;是指物理上的數據庫&#xff0c;一般你安裝了一個oracle的數據庫軟件后&#xff0c;就是一個database。 2、instance&#xff0c;在同一個數據庫上&#xff0c;可以建立多個實例&#xff0c;這些實例互相不干擾&#xff0c;每個…

oracle實驗數據庫和表,1oracle創建數據庫和表.doc

1oracle創建數據庫和表.doc實驗一&#xff1a;創建數據庫和表一、實驗目的1. 掌握使用DBCA創建數據庫2. 掌握手工創建Oracle數據庫的方法3. 掌握創建數據表的方法二、實驗內容及步驟1. 使用DBCA創建數據庫(1) 打開DBCA組件,創建數據庫sale.(2) 安裝完后進入D:\oracle\product\1…

tkmybatis 子查詢_真假童子命符箓道長教你如何查詢

童子命查詢方法一&#xff1a;童子命在相術里&#xff0c;指的是一生都霉運連連如過本命年的人。古代關于真童子命查詢有口訣“春秋甲寅子&#xff0c;冬夏卯未辰&#xff1b; 金木乙卯未&#xff0c;水火庚辛壬&#xff1b; 土命逢辰巳&#xff0c;童子定為真”解釋上面的口訣…