一、SQL*Loader的体系结构 SQL*Loader由一个输入控制文件来控制整个装载的相关描述信息,一个或多个数据文件作为原始数据,其详细组成结构包括 Input Datafiles -->装载到数据库的原始数据文件 Loader Control file -->提供给QL*Loader寻找及翻译数据的相关信息 Log File -->装载过程中产生的日志信息 Bad Files -->被剔除的一些不合乎规范化的数据,由SQL*Loader剔除,也可能被Oracle剔除 Discard Files -->对不满足控制文件中记录选择标准的一些物理记录 以上五个完整的部分最终将数据导入到数据库,当然,部分组件可以省略。 二、控制文件的作用及组成 控制文件是一个文本文件,控制文件中记录的信息告诉SQL*Loader在哪里寻找数据、如何翻译数据,以及将数据插入到哪里等 控制文件的组成分为三个部分 第一部分主要是关于通外部会话的相关信息 如一些全局选项、行信息、是否跳过特殊记录等 infile子句指明了从哪里寻找源数据 第二部分由一个或多个Into table块,每一个块包含一些被导入表的相关信息,如表名,列名等 第三部分为可选项,如果存在则包含导入的源数据 控制文件写法的注意事项 语法结构自由 不区分大小写 在行开始处使用--来作为注释行,在控制文件中的第三部分使用--来注释不被支持 关键字constant 和zone被保留 三、数据文件 数据文件可以有多个,这些数据文件需要在控制文件中指定 从SQL*Loader角度来看,数据文件中的数据被当做一条条记录 一个数据文件描述数据文件记录有三种可选的格式 固定记录格式 可变记录格式 流记录格式 这些记录格式在控制文件使用infile参数时,如果记录的格式未指定,则缺省的为流记录格式。如使用infile *时则为流记录格式 下面给出几种不同记录格式的例子 a.固定格式:INFILE datafile_name "fix n" load data infile "example.dat" "fix 11" --表明每条记录长度固定为个字节 into table example fields terminated by "," optionally enclosed by """ (col1, col2) example.dat: 001, cd, 0002,fghi, --第一条记录为, cd, 第二条记录为,fghi, 其中第二条记录包含了一个换行符 00003,lmn, 1, "pqrs", 0005,uvwx, b.可变格式:INFILE "datafile_name" "var n" load data infile "example.dat" "var 3" --使用3位来描述一条记录的长度 into table example fields terminated by "," optionally enclosed by """ (col1 char(5), col2 char(7)) example.dat: 009hello,cd,010world,im, --009 表明第一条记录的长度为个9字节,表明第二条记录的长度为10个字节等 012my,name is, c.流记录格式:INFILE datafile_name ["str terminator_string"] load data infile "example.dat" "str "|/n"" --使用| 或换行符来作为一条记录的终止 into table example fields terminated by "," optionally enclosed by """ (col1 char(5), col2 char(7)) example.dat: hello,world,| james,bond,| 逻辑记录的概念 通常情况下,数据文件中的一条物理记录即是一条逻辑记录,即数据文件的一条记录对应于数据库的一条记录SQL*Loader扩展了该功能可以将多条物理记录形成一条逻辑记录,而由这个组合再来生成一条数据库中的记录 SQL*Loader支持两种策略来形成逻辑记录 组合固定条数的物理记录来形成逻辑记录 将满足特定条件的物理记录组合并形成逻辑记录
数据泵IMPDP 导入工具的使用使用 Oracle Datapump API 实现数据导出相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)