SQL Loader 控制文件的写法

sqlldr----数据加载工具 sqlldr即SQL*Loader,SQL*Loader是Oracle的高速批量的数据加载工具,通常用来将操作系统文件(数据)迁移到Oracle数据库中,是大型数据仓库选择使用的加载方法。其可用于多种平面文件格式向Oralce数据库中加载数据,sqlldr可以在极短的时间内加载数量庞大的数据,其有两种操作模式:1)传统路径(conventional path):sqlldr会利用SQL插入为我们加载数据。 阅读详情

转帖:http://billy201.javaeye.com/blog/174566

一、SQL Loader定义

SQL Loader可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。通常用来将操作系统文件迁移到ORACLE数据库中。SQL Loader是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。

缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。

二、SQL Loader用法

在Window系统下,SQL Loader的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。
用法: SQLLDR keyword=value [,keyword=value,...]
有效的关键字:
     userid                    -- ORACLE username/password  
     control                   -- 控制文件

  log                          -- 记录的日志文件
     bad                         -- 坏数据文件,如果有的数据没有被处理,将会出现在这里。
     data                       -- 数据文件

 discard                 -- 丢弃的数据文件

 discardmax          -- 允许丢弃数据的最大值        (全部默认)
     skip                         -- Number of logical records to skip  (默认0)
     load                        -- Number of logical records to load  (全部默认)

 errors                    – 允许的错误记录数          (默认50)

 rows                      -- Number of rows in conventional path bind array or between direct path data saves   (每次提交的记录数,默认: 常规路径 64, 所有直接路径)

bindsize                 -- Size of conventional path bind array in bytes(默认256000)
                                      每次提交记录的缓冲区的大小(字节为单位,默认256000)

silent                      -- 禁止输出信息 (header,feedback,errors,discards,partitions)

direct                     -- 使用直通路径方式导入                    (默认FALSE)

parfile                    -- parameter file: name of file that contains parameter specifications

parallel                  -- 并行导入                   (默认FALSE)

file                          -- File to allocate extents from
-- 与bindsize成对使用,其中较小者会自动调整到较大者。sqlldr先计算单条记录长度,乘以rows,如小于bindsize,不会试图扩张rows以填充bindsize;如超出,则以bindsize为准。

external_table                    -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE(默认NOT_USED)
columnarrayrows               -- Number of rows for direct path column array(默认5000)
streamsize                           -- Size of direct path stream buffer in bytes(默认256000)
multithreading                    -- use multithreading in direct path
 resumable                           -- enable or disable resumable for current session(默认FALSE)
resumable_name               -- text string to help identify resumable statement
resumable_timeout           -- wait time (in seconds) for RESUMABLE(默认7200)
date_cache                          -- size (in entries) of date conversion cache(默认1000)

注意:有两种方式可以指定命令行参数:通过位置或者通过关键字。通过位置的例子:'sqlldr scott/tigertest.ctl',通过关键字的例子:'sqlldr userid=scott/tiger  control=test log=test.log';但是不能前面使用关键字指定后面通过位置制定的混合方式;为清楚起见最好所有命令行参数都用关键字指定。


三、SQL Loader实例

控制文件的写法:

示例一:

一个控制命令的脚本文件,通常以ctl结尾,内容如下:

LOAD    DATA
INFILE          't.dat'                     要导入的文件
// INFILE      'tt.date'                                 导入多个文件
// INFILE *         表示要导入的内容就在control本文件里;下面的BEGINDATA后面就是导入的内容
INTO  TABLE    table_name    指定装入的表

BADFILE            'c:/bad.txt'    可选,指定坏文件地址,缺省在当前目录下生成与原文件名一致的.bad文件

APPEND             原先的表有数据 就加在后面                                                ※注一
FIELDS   TERMINATED    BY    ','    OPTIONALLY    ENCLOSED  BY '"'           ※注二
TRAILING     NULLCOLS            表的字段没有对应的值时允许为空
************* 下面是表的字段
(

col_1 ,

col_2 ,

col_filler   FILLER                 // FILLER 关键字    此列的数值不会被装载
// 如:  lg, lg, not 结果 lg lg

) 

BEGINDATA               对应开始的 INFILE * 要导入的内容就在control文件里
10,Sql,what
20,lg,show

注一:

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

注二:

// TERMINATED    BY     WRITESPACE                             表示以空白分割
如果没声明FIELDS    TERMINATED   BY     ',' 时,可以用下面两种方式实现同样功能:
1、为每一列指定分隔符
 (

 col_1 [interger external] TERMINATED BY ',' ,
 col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,              //插入DATE数据
 col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'

 )
2、用位置告诉字段装载数据
 (

col_1 position(1:2),
col_2 position(3:10),
col_3 position(*:16),                  // 这个字段的开始位置在前一字段的结束位置
col_4 position(1:16),
col_5 position(3:10) char(8)     // 指定字段的类型

 )

示例二: 使用自定义的函数              // 解决的时间问题

在控制文件可以写入日期,但无法插入时间,写一个函数来处理这方面的问题。该函数要在Oracle中执行。

create   or  replace  function my_to_date( p_string in varchar2 ) return date

as

type  fmtArray  is  table  of  varchar2(25);

l_fmts fmtArray  :=  fmtArray( 'dd-mon-yyyy', 'dd-month-yyyy', 'dd/mm/yyyy',

 'dd/mm/yyyy hh24:mi:ss' );   --要转换的格式,可在这里添加想要的格式。

l_return date;   --返回的日期

begin

for i in 1 .. l_fmts.count  loop

begin

l_return := to_date( p_string, l_fmts(i) );    --用上面定义的格式转化日期

exception

when

Oracle SQL Loader概念及用法 SQL*Loader常用于将操作系统文件中的数据迁移到Oracle数据库中 阅读详情

相关推荐

EBS Sql Loader的简单使用

Sql Loader的简单使用总结SQL Loader简介和原理应用简述特点原理命令控制文件SQL Loader案例开发简单案例讲解多文件导入主机程序和SQL LOADER结合使用 SQL Loader简介和原理应用 简单了解一下什么是SQL*Loader?有什么用?为什么要用? 简述 SQL*Loader是Oracle数据库用于将数据从外部文件导入到 Oracle 数据库的工具。用于高性能数据加...

会写诗的程序猿的博客 1529

sql*loader

简介 SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具。这是一个非常有用的工具,可用于多种平面文件格式向Oralce数据库中加载数据。SQLLDR可以在极短的时间内加载数量庞大的数据。它有两种操作模式。 传统路径:(conventional path):SQLLDR会利用SQL插入为我们加载数据。 直接路径(direct path):采用这种模式,SQLLDR不使用SQL;而是直接格式化数据库块。 利用直接路径加载,你能从一个平面文件读数据,并将其直接写至格式化的数据库块,而绕过整个

weixin_39259749的博客 5966

Oracle sqlldr( Sql Loader )的用法

简介:SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。目前的理解就是:把文本文件,log文件,excel导入到数据库中写sqlldr只需2步:1:建立一个ctl控制文件    2:在命令窗口执行,或者在shell脚本中写1:建...

weixin_41991449的博客 4050

sql loader的一点总结

主要討論control file 格式 . sqlldr userid=lgone/tiger control=a.ctl LOAD DATA INFILE 't.dat' // 要导入的文件 // INFILE 'tt.d...

cuixie2370的博客 362

SQL*Loader详细介绍

SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法

基于 MATLAB 的综合能源系统建模:全面解析与案例应用 

本文详细介绍了基于 MATLAB 的综合能源系统建模相关知识,包括 MATLAB 在综合能源建模中的优势、综合能源系统各组件和网络的建模方法,并通过园区综合能源系统的案例展示了从建模到优化调度求解以及结果分析的全过程。在当今全球能源格局深刻变革的背景下,综合能源系统(Integrated Energy System,IES)作为一种创新的能源供应体系,整合了多种能源形式,如电力、热力、燃气等,以实现能源的高效生产、传输、分配和利用。需要考虑燃气的压力、流量特性以及管道的阻力特性等。

qq_57128262的博客 1336

SQL*Loader使用方法

--===================== -- SQL*Loader使用方法 --===================== 一、SQL*Loader的体系结构 SQL*Loader由一个输入控制文件来控制整个装载的相关描述信息,一个或多个数据文件作为原始数据,其详细组成结构包括 Input Datafiles --&g...

weixin_33695082的博客 146

逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数

本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。

weixin_27875131的博客 970

sql*loader 用法1

sql*loader control file 写法使用的例子均是oracle自带的例子,路径为:rdbms/demo ,以ulcase开头的文件共11个,介绍sql*load用法写出来纯粹是供自己学习使用1 数据文件在控制文件中  LOAD DATA   INFILE *   [INSERT|APPEND|REPLACE|TRUNCATE] INTO TABLE dept  --------注释1  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"', 

Megan2008的专栏 583

ASM磁盘通过rebalance迁移

一、实施要点: 1、数据迁移前,如果库不大,最好全库备份一次 2、进行数据平衡时,数据磁盘是添加到现有磁盘组,而不是重新建一个磁盘组 3、本次实施过程,服务器只有1张HBA卡,本次实施先取消原有的多路径,只保留旧有存储单路径,另一个FC口插上新存储的路径。待迁移完成后,再配置新存储的多路径 二、实施步骤 1.查询并配置ASM磁盘 [root@rac1 ~]# /sbin/scsi_id...

qq_40673916的博客 1373

Tesla V100 Windows 部署实战:从驱动安装到模式切换的避坑指南

本文是一份详细的Tesla V100在Windows系统下的部署实战指南。文章从硬件组装、系统选择讲起,重点阐述了驱动安装的正确方法,并深入剖析了将计算卡从TCC模式切换至WDDM模式的诱惑与潜在陷阱。最终,作者推荐保持默认TCC模式,并提供了使用nvidia-smi命令行等稳定可靠的显卡监控方案,旨在帮助用户避开常见坑点,高效利用这张专业计算卡进行AI计算等任务。

java5的博客 1711

shell 实现文本导入oracle 数据库

基本步骤:  1) 数据文件,文本格式,例如 test.log  内容如下:               8600000000000$20111031$2$1$1$2$3               8600000000000$20111031$2$1$1$1$3                2) 控制脚本,test.ctl   内容如下:  load data  CHARACTER

longwen999的专栏 2411

微信聊天记录解密,必须是root的手机

手机上安装x-plore软件,将/data/data目录的相关EnMicroMsg.db auth_info_key_prefs.xml拷贝到/storge/emulated/0目录后才可以拷贝到电脑。路径:/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml。但是是加密过的 需要解密 解密密码生成规则是手机IMEI+微信UIN md5(32位小写)后的前7位。安卓手机要root测试版本微信要7或者8版本都可以。选择message表。

venus60的专栏 1007

SQL*Loader的使用总结(一)

SQL*Loader是oracle提供的可以从多种平面文件中向数据库中加载数据的工具,使用SQLLDR工具可以在很短的时间内向数据库中加载大量的数据,像把制作好的excel表格导入数据库,可以说非常方便,相关的数据加载和卸载工具还有外部表,IMP/EXP,数据泵等,其实呢~ 关于SQL*Loader的学习多数时间是花在了琢磨sqlldr控制文件的写法上,下面来总结我的SQL*Loader学习过程和

不忘初心、方得始终 3万+

Hermes接入IMA知识库全攻略:将知识库装进你的Hermes智能体

本文详细介绍了如何将IMA知识库功能接入Hermes Agent平台,实现一站式笔记管理和知识库操作。主要内容包括:获取IMA访问凭证、下载技能包、配置凭据(支持文件和环境变量两种方式)、验证配置有效性,以及实际应用演示(查询知识库列表、创建笔记并添加到知识库)。文章还提供了常见问题解决方案,如认证失败处理、版本更新等。通过该集成,用户可在Hermes中直接调用IMA的笔记创建、知识库管理等强大功能,提升工作效率。

小石头的专栏 641

基于Simulink与MATLAB的七轴OpenArm机械臂逆运动学仿真与轨迹规划完整指南

本文详细介绍了七自由度OpenArm机械臂在MATLAB/Simulink环境下的运动学仿真与轨迹规划实现方法。首先建立了机械臂的DH参数模型,验证了正运动学计算;随后提出了两种逆运动学求解算法(数值迭代法和臂型角参数化解析法)的MATLAB实现方案;最后在Simulink中搭建了完整的轨迹规划与控制系统。研究解决了七自由度冗余机械臂特有的多解性、奇异性和关节限位约束等核心问题,为OpenArm机械臂的运动控制提供了完整的技术方案和可运行代码实现。

AI的内部世界的博客 683

自动生成 SQL* LOADER 的控制文件

经常会用SQL* LOADER来倒数据,因此,编写各种控制文件就是个日常工作了,呵呵,这里提供了一个方法,可以根据表结构自动生成控制文件:基于指定的表结构格式化SQL* LOADER的控制文件set feedback offset verify offdrop table select_text;create table select_text (text    varchar2(2000));a

lunar的小铺 2281

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5555

SQL LOADER 详解

Oracle 的SQL*LOADER可以将外部数据加载到数据库表中。下面是SQL*LOADER的基本特点: 1)能装入不同数据类型文件及多个数据文件的数据 2)可装入固定格式,自由定界以及可度长格式的数据 3)可以装入二进制,压缩十进制数据 4)一次可对多个表装入数据 5)连接多个物理记录装到一个记录中 6)对一单记录分解再装入到表中 7)可以用 数对制定列生成唯一的KEY 8)

livemox的专栏 1347

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Oracle SQL*Loader

一、SQL*Loader的体系结构     SQL*Loader由一个输入控制文件来控制整个装载的相关描述信息,一个或多个数据文件作为原始数据,其详细组成结构包括         Input Datafiles     -->装载到数据库的原始数据文件         Loader Control file  -->提供给QL*Loader寻找及翻译数据的相关信息

Watson的专栏 2485

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[Oracle] SQL*Loader 详细使用教程(3)- 控制文件

控制文件是SQL*Loader里最重要的文件,它定义数据文件的位置、数据的格式、以及配置数据加载过程的行为,本节介绍控制文件的配置参数。 在控制文件里配置命令行参数 (OPTIONS) 可以使用OPTIONS在控制文件里配置命令行参数,如下所示: OPTIONS (BINDSIZE=100000, SILENT=(ERRORS, FEEDBACK) ) 配置数据文件(INFILE)

Zhu_Julian's Notes (朱显杰的技术博客) 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: DW 2.0
下一篇: oracle 日期校验 (判断)
suncrafted
博客等级 码龄24年 103粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值