文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用SQL*Loader加载外部数据

2024-04-02 19:55

关注

这篇文章主要介绍“怎么用SQL*Loader加载外部数据”,在日常操作中,相信很多人在怎么用SQL*Loader加载外部数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用SQL*Loader加载外部数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

SQL*Loader可用于批量上载某些第三方系统生成的数据集。DBA配置一个能够解释输入数据文件内容的SQL*Loader控制文件,SQL*Loader就可以读取输入文件,将数据插入到Oracle数据库表中。

SQL*Loader是一个客户端-服务器进程,可采用两种技术导入数据:常规方式或直接路径。

常规方式使用普通的INSERT语句。SQL*Loader用户进程构造VALUES子句中包含绑定变量的INSERT语句,然后读取源数据文件,为每个要插入的行执行一次INSERT。此方法使用数据库缓冲区缓存,并生成撤销和重做数据。

直接路径避开了数据库缓冲区缓存。SQL*Loader读取源数据文件,并将其内容发送到服务器进程。此后,服务器进程在其PGA中组装表数据的块,并将它们直接写入数据文件。写操作在表的高水位线上完成,称为数据保存。加载完成后,SQL*Loader移动高水位线,从而包含最新写入的数据块。此时不会生成撤销,因此直接路径加载极为快捷。

直接路径加载速度快,但存在以下问题:

之所以存在以上限制,是因为加载期间缺少与SGA的交互。

SQL*Loader使用多种文件:

输入数据文件(input datafile):将要上载到数据库的源数据。

控制文件(control file):指示SQL*Loader如何解释输入文件的内容如何提取记录。

日志文件(log file):概述了作业的成功与失败及相关错误细节。

错误文件(bad file):违反规则而未能成功插入数据库的记录被写入该文件。

废弃文件(discard file):提取记录成功但不匹配选择标准而被丢弃的记录写入该文件。

考虑下面的表:

SQL> desc dept

Name   Type         Nullable Default Comments

------ ------------ -------- ------- --------

DEPTNO NUMBER(2)                             

DNAME  VARCHAR2(14) Y                        

LOC    VARCHAR2(13) Y                        

此源数据文件为e:\dept.txt:

60,liuln,nanjing

70,shenzj,jiaxing

80,chenyz,shanghai

用于加载此数据的SQL*Loader控制文件是e:\dept.ctl:

load data

infile 'e:\dept.txt'

badfile 'e:\dept.bad'

discardfile 'e:\dept.dsc'

append

into table scott.dept

fields terminated by ','

trailing nullcols

(deptno integer external(2),

dname,

loc)

控制文件中指定了输入文件、错误文件、废弃文件,指定为表添加行而不是截断它,指定了插入的表、字段分割符,trailing nullcols表示如果缺少字段,就插入NULL值,最后指明了插入数据对应的列。

要执行加载,在操作系统提示符下执行以下命令

sqlldr scott/tiger control=e:\dept.ctl log=e:\dept.log direct=true

direct=true参数指示SQL*Loader使用直接路径,而不是默认的常规插入操作。操作结束后可以查看一下生成的日志文件信息,同时查询表dept确认数据被添加进来。

到此,关于“怎么用SQL*Loader加载外部数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯