SQLLoader在数据加载中应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLLoader在数据加载中应用

SQLLoader在数据加载中应用   【摘 要】本文详细介绍了SQL*Loader在数据加载中的应用,并对其加载性能进行了简要探讨。SQL*Loader对于加载现成的大块数据入库是非常便捷高效的,对于满足一定格式要求的数据块,只需编写少量命令形成控制文件便可调用sqlldr命令加载数据。通过相应的控制参数,可以显著提高巨量数据加载时的性能。   【关键字】SQL*Loader 数据加载 应用   在向Oracle数据库批量加载数据的时候,通常写一个充满insert语句的脚本文件。这对于大量现成的数据而言,改写成insert语句的工作量巨大的且相当烦琐,而且极易出错,虽然可以编程解决手工insert语句转换问题,但还是比较麻烦。   SQL*Loader数据加载器可以出色地完成这个工作,其原理是自动创建执行数据加载的insert命令。只需对现成的数据文件稍加操作,使之变成标准格式文件,再编写一个文本文件――控制文件,包含要加载的数据格式信息、字段、加载顺序等内容。在加载数据时,根据数据加载的情况,会自动生成日志文件(.log),可能会生成“坏”文件(.bad,当有错误产生时产生)和“废弃”文件(.dsc,当有不满足加载条件数据时产生)。   SQL*Loader一般使用两个文件,一个数据文件,另一个是控制文件。   一、关于数据文件   数据文件是存储SQL*Loader要加载的数据的。数据文件需要满足一定的要求,即要选择一个在加载值中没有出现的分隔符作为字段间分隔标记。因为该分隔符是控制文件判断字段结束的标志,所以一旦在要加载的数据中出现,则被解析成一个字段的结束,产生错误。   常见的数据格式为纯文本文件和Excel文件。尤以Excel文件最多,这种格式的文件通常通过另存为.cvs格式文件加载至数据库,也是最为常用的方法。   二、关于控制文件   控制文件是告诉Oracle如何读取和加载数据的。控制文件控制着数据的加载要求:数据文件在何处、要将数据加载到哪张表和加载中要应用的其他规则。   加载数据可以是定长数据也可以是变长数据。比较灵活和常用的是可变长数据的加载,这就用到了关于数据文件分隔符的要求,因为需要用SQL*Loader命令显示指出字段的结束标志,这样才能??确地将数据读入数据库中。   我们以油田“单井基础信息”表为例说明。目前很多是以Excel格式存储的,需要将其转换成一定标准格式文件,可以以另存为.cvs的方式将其转换为以“,”为分隔符的文件。假定转换生成的文件名为daa01.cvs,放在/usr/testuser目录下,下面编写一个名为daa01.ctl的控制文件。   load data   infile ‘/usr/testuser/daa01.dat’   badfile ‘/usr/testuser/daa01.bad’   append   into table daa01   fields terminated by ‘,’   (JH,CYJH,CYJH1,CYJH2,……)   在选择文件的加载方式时有四种选项:append(以追加方式加载)、insert(用于在空表中插入行,表不为空时则出错)、replace(用于先清空表,再添加新行)、truncate(用于先截断表,再添加新行)。其中truncate方式由于操作后不能回滚,所以在使用时需格外谨慎。   三、如何加载   在Unix/Linux平台使用SQL*Loader时使用sqlldr命令启动,启动时必须指定控制文件名、用户名、口令,其他控制选项均是可选项。以上面的daa01.ctl文件为例说明如下所示:sqlldr testuser/mypassword control=daa01.ctl   若数据文件中有加载失败数据,则会自动生成一个名为daa01.bad的“坏”文件,可以通过查看自动生成的daa01.log文件查找失败原因。   加载完成后,登录Oracle数据库查验:   select * from daa01   刚才谈到SQL*Loader的命令参数问题,我们看到,在加载数据的参数中并未指定数据文件名,那它是如何找到该要加载的数据文件呢?   事实上,除了加载数据所必须的三个参数外,还有一些常用到参数为:data(或datafile,数据文件名,默认值为控制文件名.dat。这就是没有指定这个参数的原因,因为其数据文件名和,控制文件名都是daa01,不同的只是扩展名,所以可以默认不选。);   load(指定要加载的数据行数,默认为全部数据行。);   rows(一次提交的行数,以此值来分解事务的大小。默认为64行,直   接路径加载为全部行。);   s

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档