sqlloader的基本用法例子

今天同事临时让我帮忙写个 sqlloader  load到DB的例子。之前只是听过sqlloader可以把数据文件快速的upload到DB。 大概知道要用到 sqlldr命令,具体怎么做就只好百度了。

描述:User提供的文件是 abc.xls 类型的,用shell读取了一下发现是乱码,偷笑我这个菜鸟居然又在这部分犯错误。 Word,excel,pdf这些文本都不是直接可读的,要有专用的解析程序才可以滴。 其次data 文件时有header的。再次是data file有2列数据与数据库表的列可匹配。

额外需要,把DB中表acct_loyal_ref的 create_date和create_by两个字段的值也批量载入。

1. 首先手动把.xls格式的改为以逗号分隔的 .csv文件。

2. 写control file loader.ctl

3. 写shell scrip


如果control file(table column)与data file的column是一一对应的话,control file写法简单,如下

load data characterset ZHT16BIG5 
truncate  
into table acct_loyal_ref
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
(
cust_id,
sales_date Date      "DD-MM-YYYY HH24:MI:SS",
alrp_created_date Date "YYYYMMDD HH24:MI:SS" ,
alrp_created_by  
)


如果table column与data file的column不对应。

1. data file column 少于 table column. (这次遇到的就是,但是table约束是每个column都不能为空)

   在Shell scrip中用

  sed 's/$/\,/g' $datafile >$exportfile

在datafile 的每一行末尾追加一个‘,’【因为是table里面共4个字段,csv 文件只有2个字段】。每行只追加1个‘,’


ctl file:

load data characterset ZHT16BIG5 
truncate  
into table acct_loyal_ref
fields terminated by "," optionally enclosed by '"'
TRAILING NULLCOLS
(
cust_id,
sales_date Date "DD-MM-YYYY HH24:MI:SS",
created_date Date "YYYYMMDD HH24:MI:SS" "nvl(null,sysdate)",
created_by   "nvl(null,'OPERUSER')"
)

就可以解决本文引出的那个描述问题了。


2.  table column 少于 data file column.
看了一些资料,个人感觉应该直接用在crl文件中配置参数进行过滤就行。还有待考证。



************* 以下是4种装入表的方式 
APPEND // 原先的表有数据 就加在后面 
// INSERT // 装载空表 如果原先的表有数据 sqlloader会停止默认值 
// REPLACE // 原先的表有数据原先的数据会全部删除 
// TRUNCATE // 指定的内容和replace的相同会用truncate语句删除现存数据 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL*Loader是Oracle数据库的一个数据加载工具,它可以将数据从外部文件(如文本文件、CSV文件等)导入到Oracle数据库中。下面是SQL Loader的详细讲解: 1. SQL Loader的工作原理 SQL Loader的工作原理是将外部文件中的数据读入到内存缓冲区中,然后通过SQL语句将数据写入到Oracle数据库中。SQL Loader的主要组件有控制文件(Control File)、数据文件(Data File)、日志文件(Log File)和坏数据文件(Bad File)。 2. SQL Loader的控制文件 控制文件是SQL Loader的核心组件,它包含了SQL Loader的加载规则和指令。控制文件可以使用任何文本编辑器进行编辑,其中包含了如何解析数据、如何转换数据以及如何将数据写入到Oracle数据库中的指令。控制文件中定义了数据文件的格式、数据类型、分隔符、转义字符等信息。 3. SQL Loader的数据文件 数据文件是包含要加载到Oracle数据库中的数据的文件。它可以是文本文件、CSV文件或其他格式的文件。数据文件中的每一行都代表了要加载到数据库中的一条记录,每一列代表了记录中的一个字段。 4. SQL Loader的日志文件 日志文件用于记录SQL Loader的加载过程中发生的事件和错误信息。它可以帮助用户诊断加载问题。 5. SQL Loader的坏数据文件 坏数据文件用于存储在加载过程中无法解析或无法转换的数据。它可以帮助用户在加载完成后手动处理这些数据。 6. SQL Loader的使用步骤 使用SQL Loader需要以下步骤: (1)创建一个控制文件,定义要加载的数据文件的格式和加载规则。 (2)准备要加载的数据文件。 (3)使用SQL Loader命令行工具,指定控制文件和数据文件。 (4)查看日志文件和坏数据文件,处理错误和无法转换的数据。 以上就是SQL Loader的详细讲解,它可以帮助数据库管理员和开发人员更加方便地将外部数据导入到Oracle数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值