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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java sqlldr导入_使用SQL*LOADER将TXT或CSV数据导入ORACLE(转)

發布時間:2025/3/20 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java sqlldr导入_使用SQL*LOADER将TXT或CSV数据导入ORACLE(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介

SQL*LOADER是ORACLE的數據加載工具,通常用來將操作系統文件遷移到ORACLE數據庫中。SQL*LOADER是大型數據倉庫選擇使用的加載方法,因為它提供了最快速的途徑(DIRECT,PARALLEL)。使用前提是必須存在目標表。

二、SQL*LOADER使用方法

在Window系統下,SQLLoader的命令為sqlldr,在UNIX下一般為sqlldr/sqlload。

有效的關鍵字:

userid?? --?? ORACLE?? 用戶名/口令

control?? --???控制文件名

log?? --???日志文件名

bad?? --錯誤文件名,如果有的數據沒有被處理,將會出現在這里

data?? --???數據文件名

discard?? --???廢棄文件名

discardmax?? --???允許丟棄數據的數目?? (全部默認)

skip?? --???要跳過的邏輯記錄的數目?? (默認0)

load?? --???要加載的邏輯記錄的數目?? (全部默認)

errors?? --???允許的錯誤記錄數目? (默認50)

rows?? --???常規路徑綁定數組中或直接路徑保存數據間的行數(默認:常規路徑64,所有直接路徑)

bindsize?? --常規路徑綁定數組的大小,以字節計算(默認65536)

silent?? --???運行過程中隱藏的信息?? (header,feedback,errors,discards,partitions)

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)

PLEASE NOTE: 命令行參數可以由位置或關鍵字指定。前者的例子是 'sqlload scott/tiger foo';

后一種情況的一個示例是 'sqlldr control=foo

userid=scott/tiger'.位置指定參數的時間必須早于但不可遲于由關鍵字指定的參數。例如,允許 'sqlldr

scott/tiger control=foo logfile=log', 但是不允許 'sqlldr scott/tiger

control=foo log', 即使參數 'log' 的位置正確。

三、SQL*LOADER實例

控制文件腳本實例:

loaddata--控制文件表示infile'e:\aa.csv'--有導入的數據文件名appendintotableTBL_SYNC_CORE_INSURANCE--向表TBL_SYNC_CORE_INSURANCE中追加記錄fields?terminatedby','--指定用逗號分隔OPTIONALLY?ENCLOSEDBY'"'TRAILING?NULLCOLS--表的字段沒有對應值時允許為空*************下面是表的字段

(

COVERAGE_CODE,

PRODUCT_NO,

NAME,

MAIN_COVERAGE_CODE,

KIND,

CREATOR,

CREATED_DATE,

MODIFIER,

MODIFIED_DATE

)

備注:數據導入的方式上例中用的append,有一下幾種:insert,為缺省方式,在數據裝載開始時要求表為空;append,在表中追加新記錄;replace,刪除舊記錄,替換成新裝載的記錄?? ;truncate,同replace,會用truncate語句刪除現存數據。

在命令行提示符下使用SQL*Loader命令實現數據的輸入:

sqlldr userid=用戶名/口令@服務名control='e:\control.ctl'?? log=e:\log.txt?? bad=e:\bad.txt

如果本地安裝了oracle服務端,可以不寫服務名;log和bad不寫,默認生成在當前目錄下。

四、其他導入方法

利用PLSQL?? Developer:

在單個文件不大的情況下(少于100000行),并且目的表結構已經存在的情況下-----對于excel而言肯定不會超過了,因為excel文件的最大行為65536-----可以全選數據COPY?? ,然后用PLSQL?? Developer工具。

1?? 在PLSQL?? Developer的sql?? window里輸入select?? *?? from?? test?? for?? update;

2?? 按F8執行;

3?? 打開鎖,?? 再按一下加號.?? 鼠標點到第一列的列頭,使全列成選中狀態,然后粘貼,最后COMMIT提交即可。

五、補充在Linux下使用 sqlldr 的注意事項

在執行 sqlldr 前,需要進行以下步驟

設置 ORACLE_HOME 環境變量,如 export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

設置ORACLE編碼格式,將本地字符集和ORACLE字符集設置為一致,如export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

將csv文件轉碼成相應的編碼

然后再使用 sqlldr 進行數據導入

posted on 2010-11-07 15:42 哈哈的日子 閱讀(3723) 評論(0) ?編輯 ?收藏

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java sqlldr导入_使用SQL*LOADER将TXT或CSV数据导入ORACLE(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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