EBS Sql Loader的简单使用

SQL*Loader是Oracle数据库用于高效地从文本文件导入数据的工具。它支持多种数据格式,具备错误报告,能处理二进制和压缩数据。控制文件是其核心,定义了数据文件、格式、表映射等。通过案例展示了如何创建控制文件、执行SQL*Loader命令以及在主机程序中结合使用。
摘要由CSDN通过智能技术生成

SQL Loader简介和原理应用

简单了解一下什么是SQL*Loader?有什么用?为什么要用?

简述

SQL*Loader是Oracle数据库用于将数据从外部文件导入到 Oracle 数据库的工具。用于高性能数据加载,数据可以从任何文本文件加载,并插入到数据库。它和DB2的Load工具相似,但是提供了很多参数以供选择,支持变化的加载模式(负载格式、 选择性加载和多表荷载),可选的加载及多表加载; 它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。

特点

1)能装入不同数据类型文件及多个数据文件的数据
2)可装入固定格式,自由定界以及可度长格式的数据
3)可以装入二进制,压缩十进制数据
4)一次可对多个表装入数据
5)连接多个物理记录装到一个记录中
6)对一单记录分解再装入到表中
7)可以用 数对制定列生成唯一的KEY
8)可对磁盘或 磁带数据文件装入制表中
9)提供装入错误报告
10)可以将文件中的整型字符串,自动转成压缩十进制并装入列表中。

原理

1:数据加载方式
1:无控制文件
SQLLoader程序主体由一个文件组成,该文件的内容要包括指定加载的数据源文件、加载数据命令、数据加载相关的控制命令和验证逻辑。但是,如果数据加载的逻辑很复杂是不建议用这种方式的,否则该文件会很庞大,而且逻辑代码变得很臃肿。这样去进行数据导入反而变的不方便。因此,无控制文件的加载方式适合于一些很简单的数据问价加载。
2:有控制文件
控制文件是用一种语言写的文本文件,这个文本文件能被SQL
LOADER识别。SQL*LOADER根据控制文件可以找到需要加载的数据。并且分析和解释这些数据,控制文件由三个部分组成:
1):全局选件,行,跳过的记录数等;
2):INFILE子句指定的输入数据;
3):数据特性说明。

2:数据传输流程以及对应的各种文件信息
一般第二种方式更实用,因为设计灵活,模板和数据分离
在这里插入图片描述
从图中可以看出,把Data_Source和Ctl_File传入SQLLoader,输出的结果包括日志,坏文件(错误的文件),丢弃文件(被拒绝的记录)和导入成功的数据四部分。
1:参数文件(可选):
可以把参数直接写在控制文件里,也可以单独写一个参数文件。(参数文件的意义:如果有多个导入程序而且他们部分参数都相同时,可以不必重复的在各个程序中都输入相同的参数,定义成参数文件调用即可,参数文件的调用方法:在控制文件的OPTIONS字句里调用,但是,控制文件中命令行参数的优先级最高,可以覆盖参数文件里的参数配置)
2:数据文件:
对于 SQL
Loader, 除控制文件外就是输入数据。SQLLoader可从一个或多个指定的文件中读出数据。如果 数据是在控制文件中指定,就要在控制文件中写成 INFILE * 格式。当数据固定的格式(长度一样)时且是在文件中得到时,要用INFILE “fix n”
3:坏文件:
坏文件包含那些被SQL
Loader拒绝的记录。被拒绝的记录可能是不符合要求的记录。
坏文件的名字由 SQLLoader命令的BADFILE 参数来给定
4:丢弃文件(可选)(Discard File):
有些数据,虽然数据格式、数据类型没有问题,但它被逻辑条件过滤掉了(由控制文件WHEN设置),会被放入丢失文件。
5:日志文件及日志信息:
当SQL
Loader 开始执行后,它就自动建立 日志文件。日志文件包含有加载的总结,加载中的错误信息等。

命令

1:命令
SQLLoader可以在Windows系统下使用,也可以在Unix系统下使用,大同小异
sqlldr/sqlload keyword=value[,keyword=value,…]
如果忘记了某些参数的含义时,也可以通过这个方式快速查询:
输入sqlldr,后面不接任何参数,将显示所有的命令行参数的简单描述及其默认值
2:程序参数
Sqlldr命令参数组要有以下:
Userid:装载使用到的帐号信息,包括数据库信息,格式如:userid=user/passwd@dbname
Control:指定装载使用到的控制文件
Log:指定装载使用到的日志文件
Bad:指定装载使用到的BAD文件
Data:指定装载使用到的数据文件,如果在控制文件中也制定infile文件,那么将优先使用命 令行的data文件,control文件中的第一个infile文件将忽略,如果control文件中只有一个data文件那么sqlldr将给出一个警告。
Discard :discard 文件,不符合转载条件的记录文件
Discardmax;允许discards 数目,默认是全部
Skip;跳过记录数
Load:指定装载数据的逻辑数目,默认是说有记录。
注:逻辑记录和物理记录的区别:逻辑记录是指导入数据库的记录,物理记录数指文 件中存在的记录。一般情况下逻辑记录跟物理记录相等,但是有些情况下,如,多条 物理记录联合装载,这样可能出现不相等的情况。
Errors:允许出错数目,如果达到出错数就退出装载,默认50
Rows:装载提交数目,普通装载默认64,在直接路径如果没有指定默认为全部记录,通过这个特性可以用来控制sqlldr的事务一致性。
Bindsize:指定普通转载绑定数组的值,默认256000,该值之适用于普通装载,而不适用于直接路径装载,因为直接路径装载使用的是直接路径API,而不是普通装载的insert。设置大的bindsize可以提供每次insert的记录数目。
Silent:提示在装载时候终端上显示的内容,有以下几种可以选择。
Header:禁止sqlldr装载标题提示信息,但在log文件依然出现。
Feedback:禁止"commit point reached"提示信息。
Errors:禁止数据错误信息写在log日志文件,但是rejected records依然会写入。
Discards:禁止在log日志里面的记录信息写入discard文件。
Partitions:在采用直接路径装载的时候,取消写每个分区统计信息入日志文件。
ALL:包含以上所有的值
Direct

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值