电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解Oracle中sqlldr的具體用法

瀏覽:113日期:2023-09-12 20:47:51
目錄前言第一步: 寫一個 ctl 格式的控制文件1 . 我在第三步中運用了 insert into table 還有以下幾個值2 . 也就是我表中屬性 content 的問題 -- CLOB 類型插入問題第二步 : 在 cmd 命令窗口中寫入導入語句 總結一下 : oracle sqlldr導入文件只需要兩步前言

由于最近做一個項目 , 需要將 .log格式的文本文件導入到 oracle當中 。其中遇到過很多的問題 , 網上有許多的例子 ,但是對于一個沒有學過 oracle 的小白來說還是有一些晦澀。

所以我特意將我找的一些相關資料進行總結一下 。

首先導入 oracle 的方法有很多 , 對于不同需求有不同的導入方式 , 我在這里就說一下 sqlldr 的方法 。 使用sqlldr 將文本文件導入 oracle中確切說只需要兩步 。

第一步: 寫一個 ctl 格式的控制文件

CTL 控制文件的內容 : (我會寫一個模板和一個樣例)

模板 :

load data -- 1. 控制文件標識

infile 'xxx.txt' -- 2. 要導入的數據文件名

insert into table test -- 3. 將文件插入到數據庫的 test 表中

fields terminated by X'09' -- 4. 用于分割一行中各個屬性值的符號(例如每個屬性值用逗號 分割 , 那么就把 X'09' 改為 ‘ ,’)

(id , username ,passwprd ,......) -- 5. test表中對應的屬性名

這五個內容是一個基本的步驟 , 注意是基本 , 基本 基本 。(重要的事情說三遍) , 導入文件的時候根據不同的需求會在不同的地方在添加一些內容 , 下面舉一個我這次項目所導入的內容 。

樣例:

load data

infile 'E:/user_data_one_week/zhejiang_user_data.log' -- (我的文件格式是 .log 之前上網查.log文件導入oracle的方法都沒有人遇到過 , 結果我試著用文本文件的方法沒想到可以導入進去)

insert into table day_data -- (我的數據庫的表名為 day_data , 其中除了 insert into table 還有其他的寫法 , 根據需求來 , 下面會詳細寫)

fields terminated by '|' --(我的數據文件每個字段也就是屬性是按照 | 來分割的)

trailing nullcols (這行就是我根據需求新加入的 , 因為我的數據中某些屬性可能是 null 值 , 如果不加入這行導入到數據庫的時候就會自動跳過null值的列, 這樣數據插入后就會屬性和值對應不上)

(time, user_id, type, longitude, latitude, height, content char(10000)) (注意 : 我這里的 content 運用的類型是 clob , 但是為什么后面加了 char(10000) 下面會詳細講 , 也是一些新手會遇到的問題)

上面的樣例就是我這次項目中縮寫的 ctl 控制文件 。

CTL 控制文件大概已經說好了 , 但是補充幾點 .

1 . 我在第三步中運用了 insert into table 還有以下幾個值 insert 為缺省方式 , 插入表中時要求表為空 , 不然會報錯 (我就是總忘記在插入前清空表 , 每次都是報錯提醒我我才過去刪除內容的 ,吼吼)append , 在表中追加新紀錄 , 所以表不為空插入的時候也不會報錯replace , 刪除舊記錄 , 替換成新裝載的記錄 (明明我應該用這種方法 , 但是我對 insert情有獨鐘 ,好吧,我是導入完才看到有這個的)reuncate 同上 (也同上沒用過 )2 . 也就是我表中屬性 content 的問題 -- CLOB 類型插入問題

這個問題也困擾了我好久 , 在網上找了好久才解決的 。 下面我來分享給也受這個問題困擾的小伙伴 , 如果沒有需求 ,自動略過進入下一個環節。

由于數據長度比較大 , 所以表中 content 這個屬性類型我用了 clob , 但是導入數據庫時總報錯。(錯誤可以在自動生成的 log.log文件中查看,下面會講到)說我數據長度超過了定義類型的最大長度 , 這時我就納悶了 , 我已經把類型定義為 clob了,為什么還會超過最大長度。

當使用sqlldr加載很長的字符串(超過4000)到表中的clob類型中時,老是報錯: 數據文件的字段超出最大長度.查找相關資料后得知,sqlldr每次讀入文件中數據流的數據類型默認為CHAR ,長度為 255。所以只要超過255字符的段都會報這個錯。

解決方法很簡單,在控制文件中字段后添加上char(1000000),例如:

LOAD DATA INFILE * INTO TABLE DEMO TRUNCATE FIELDS TERMINATED BY ',' (d1 ,d2 char(1000000))

其中表demo的列d2是clob類型,當然1000000只是隨便用的一個大數字,只要保證加載的長度不超這個數字就成

我按照這樣一改問題就解決了。

第二步 : 在 cmd 命令窗口中寫入導入語句

模板:

-> sqlldr userid = 用戶名 / 密碼 @ 數據庫名 control = 之前寫的ctl控制文件的地址 bad = E:/ bad.bad log = E:/log.log

實例 :

-> sqlldr userid = everyday/123456@orcl control = E:/data.ctl bad=E:/bad.bad log = E:/ log.log

實例解釋 :

由于本人還是學生 , 還沒有上到 oracle , 只是學過 mysql 。 所以oracle的一些基本概念沒有搞清(自己就隨便借了本書簡單的看了一下,理清了大小關系 : 創建用戶 -- 數據庫 -- 表空間 -- 表 ) , 之前在想 , 我創建用戶后只對表空間進行的設置 , 并沒有創建數據庫啊 ,之后才知道當創建用戶之后會自動生成一個數據庫 , 數據庫名就是 orcl 。

bad = E:/bad.bad --- 當導入文件出錯時就會在 E盤生成.bad 的文件 , 里面會記錄你出錯誤沒有導入的數據

log = E:/log.log -- 當導入文件 , 會記錄你導入文件詳細的內容 , 包括出錯的信息 (我之前導入失敗 , 原因就是從這里找的)

總結一下 : oracle sqlldr導入文件只需要兩步

1. 寫 CTL 控制文件

2 .在 cmd 命令窗口中寫入導入語句

每一步上面都有講 , 如果沒有看仔細請往上翻重新看一遍。 這里只是我導入時遇到的問題進行了全面的講解 , 可能還會有一些不足 。 畢竟這是我第一篇文章,畢竟我還是一名學生 , 所以可能會有許多的問題沒有考慮到 , 如果各位親看到我的文章有錯誤也可以只出 ,我進行修改 。 寫這篇文章只為分享給大家并且方面我日后查閱。希望大家共同進步

到此這篇關于詳解Oracle中sqlldr的具體用法的文章就介紹到這了,更多相關Oracle的sqlldr用法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Oracle 數據庫
主站蜘蛛池模板: 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 首页 - 军军小站|张军博客| 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 达利园物流科技集团-| 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 月嫂_保姆_育婴_催乳_母婴护理_产后康复_养老护理-吉祥到家家政 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 桐城新闻网—桐城市融媒体中心主办 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 |