`
pengwei.daily
  • 浏览: 23506 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQL*Loader - 十万个怎么办 系列一

阅读更多

同一个数据文件,要导入不同表怎么办?

控制文件提供了多种逻辑判断方式,只要能把逻辑清晰地描述出来,SQL*Loader就能按照指定的逻辑执行加载。

BON SMITH CLERK 3904
BON ALLEN SALER,M 2891
MGR 10 SMITH SALES MANAGER
MGR 11 ALLEN.W TECH MANAGER
TMP ALLEN 7499 SALESMAN 1600 30

需求:以MGR开头的记录导入MANAGER表,以BON开头的记录导入BONUS表,其他记录作废

LOAD DATA
INFILE ldr_case9.dat
DISCARDFILE ldr_case9.dsc
TRUNCATE
 INTO TABLE BONUS
  WHEN TAB='BON'
  ( TAB FILLER POSITION(1:3),
    ENAME POSITION(5:9),
    JOB POSITION(*+1:18),
    SAL POSITION(*+1)
  )
  INTO TABLE MANAGER
  WHEN TAB='MGR'
  ( TAB FILLER POSITION(1:3),
    MGRNO POSITION(4:5),
    MNAME POSITION(7:13),
    JOB POSITION(*+1)
  ) 

DISCARDFILE参数,以生成不满足加载条件的废弃文件。

 

数据文件前N行不想导入怎么办?

SQLLDR有一个参数SKIP,满足此类需求:

SQLLDR SOCTT/TIGGER CONTROL=ldr_case10.ctl SKIP=3 

SQLLDR还有一个参数LOAD参数:只加载第**~第**行的记录

需求:加载第4~9行的记录

SQLLDR SOCTT/TIGGER CONTROL=ldr_case10.ctl SKIP=3 LOAD=6
 

要加载的数据中有换行符怎么办?

手工指定换行符

“\”是默认转义符,指定该转义符后SQLLDR就将将“\n”识别成普通字符。

10, SMITH, SALES MANAGER, This is SMITH. \n He is a Sales Manager.
11, ALLEN, TECH MANAGER, This is ALLEN. \n He is a Tech Manage.

加载remark列的数据,将用户指定的额“\n”字符替换为chr(10), 即标准换行符。

LOAD DATA
INFILE ldr_case11.dat
TRUNCATE INTO TABLE MANAGER
FIELDS TERMINATE BY ","
( MGRNO, MNAME, JOB,
   REMARK "replace (:remark, '\\n', chr(10))"
)

指定FIX属性处理换行符(定长数据文件专用)

10 SMITH SALES MANAGER This is SMITH.
He is a Sales Manager.
11 ALLEN TECH MANAGER This is ALLEN.
He is a Tech Manage.
LOAD DATA
INFILE ldr_case11_2.dat "fix 68"
TRUNCATE INTO TABLE MANAGER
( MGRNO POSITION(1:2), 
  MNAME POSITION(*+1:10), 
  JOB POSITION(*+1:24),
  REMARK POSITION(*+1:65)
)

先通过FIX属性指定每行的长度(这里每行68个字符,包括换行符在内),到了指定长度就换行,不管中间有没有换行符。

仅用于定长字符串的数据文件。

指定VAR属性处理换行符(行头部标识换行)

 

 

 

分享到:
评论

相关推荐

    SQL*Loader

    SQL*Loader是Oracle数据库系统中的一个实用工具,用于快速加载大量数据到数据库表中。它提供了高效的数据导入功能,能够处理各种格式的数据文件,如文本文件、CSV文件等。SQL*Loader通过直接路径加载方法,可以显著...

    SqlLoaderPlus100 DB 客户端工具

    1. **SqlLoader概述**: SQL*Loader是Oracle数据库系统中一个内置的数据加载工具,用于快速将大量数据从文本文件批量加载到数据库中。SqlLoaderPlus100在此基础上增加了更多特性,例如增强的错误处理、性能优化和...

    Oracle数据库装载外部数据工具SQL*Loader的应用.pdf

    此外,SQL*Loader提供了一系列参数和选项,允许用户根据自己的需求对数据装载过程进行细致的控制。例如,可以指定使用或不使用特定的字段转换、记录过滤以及对特定字段应用SQL函数等。SQL*Loader还支持多种错误处理...

    一个简单的调用sql loader批量数据导入程序

    控制文件是SQL*Loader的核心,它包含了一系列的指令,如字段的名称、数据类型、长度、转换规则等。例如,你可以指定某个字段是否可选,或者如何处理日期和数字等特殊类型的数据。控制文件的格式如下: ```sql LOAD ...

    SQL_LOADER例子

    在描述中提到,"sqlloader方便数据的导入导出",确实如此,SQL*Loader不仅支持数据的导入,还可以用于导出数据。对于导入,它能处理大量数据,并且支持多种数据类型,包括字符串、数字、日期等。对于导出,可以通过...

    用C++ 产生 SQLLoader 各类文件

    在将Foxpro的dbf文件通过Oracle工具SQL*Loader加载到Oracle数据库中,通常需要经过一系列步骤,包括数据转换、创建表结构以及执行数据加载。本文主要介绍如何使用C++来自动化这个过程,提高效率。 1. **数据转换**...

    通过sqlloader将csv中文件写入数据库中

    在提供的压缩包`sqlLoader`中,可能包含示例的控制文件和数据文件,你可以按照上述步骤进行操作,以实际操作来加深理解。通过实践,你将能够熟练掌握`SQL*Loader`,从而更高效地管理和维护数据库中的数据。

    Oracle 10g Concepts (Oracle 10g 概念中文手册)——破解版!!

    - SQL*Loader是一种快速批量加载数据到Oracle数据库的工具。 - **11.6 外部表** - 外部表允许直接访问位于文件系统或其他文件格式中的数据。 - **11.7 LogMiner** - LogMiner是用于从重做日志文件中提取更改数据...

    oracle 10g concepts

    - 数据块是最小的数据存储单位,扩展是一系列连续的数据块组成的逻辑单元,而段则是相同类型数据的集合,例如所有表的行构成一个表段。 - **2.2 数据块纵览** - 数据块大小通常是8KB、16KB或32KB,取决于操作系统...

    oracle逻辑导入导出.pptx

    总结来说,Oracle逻辑导入导出涵盖了一系列技术,如SQL*Loader用于快速加载数据,外部表提供对文件系统数据的直接访问,而数据泵则为大规模数据迁移提供了高效的解决方案。这些工具共同构建了Oracle数据库强大的数据...

    oracle sql loader全攻略

    通过命令行调用SQL Loader时,需要指定一系列的关键字参数来控制加载过程。下面列举了一些常用的关键字及其作用: - **userid**:指定Oracle数据库的用户名和密码,格式为`username/password`。 - **control**:...

    Oracl-SQL Lorder

    总之,Oracle SQL*Loader是一个强大的工具,它使得从各种数据源导入数据到Oracle数据库变得简单且高效。无论是在不同的操作系统上还是在处理不同格式的数据时,SQL*Loader都能提供一致的性能和可靠性,是数据迁移和...

    oracle的SQl

    它不仅支持基本的数据检索和更新操作,还提供了一系列高级功能,如事务控制、安全性管理和复杂的数据处理等。 #### 二、Oracle SQL常用操作 1. **数据定义语言(DDL)**: - `CREATE`:创建新的数据库对象,如表...

    IT笔试题全集_数据库Oracle篇_追雨制作_2011版[参照].pdf

    - **PROCEDURE** 是无返回值的PL/SQL代码块,通常用于执行一系列操作。 - **PACKAGE** 是一组相关的FUNCTIONs和PROCEDURES的集合,它可以提供模块化和封装,增强代码的可重用性和效率。 2. **序列的当前值获取** ...

    ORACLE SQL*加载程序的使用方法.pdf

    ORACLE SQL*加载程序(SQL*Loader)是Oracle提供的用于将外部数据文件加载到数据库表中的工具。它是一种数据转换工具,支持数据的导入、迁移和整合,特别适用于数据量大和复杂数据结构的情况。SQL*Loader能够有效地...

    Oracle数据库基础知识

    - **区(Extent)**:一系列相邻的数据块,组成段的一部分。 - **块(Block)**:数据库中最小的数据存储单位。 **1.3.2 表(Table)** - **列(Column)**:表中的每一列都有特定的数据类型和长度。 - **行(Row)**:表中...

    oracle学习资料

    - **通过查询从一个表创建另一个表**:`CREATE TABLE 新表名 AS SELECT * FROM 原表名;` - **查看表的系统信息**:使用`DESCRIBE 表名`或`DBMS_METADATA.GET_DDL('TABLE', '表名')`获取表结构信息。 - **更改表**...

    windowns下利用bat命令+oracle的sqlldr功能导入数据

    Oracle的SQL*Loader(简称SQLLDR)工具就是这样一个强大的数据加载器,它能快速高效地将数据从外部文件批量导入到数据库中。结合批处理(BAT)脚本,我们可以自动化这个过程,提高工作效率。下面我们将详细探讨如何...

    使用Oracle 移植工作台从 Microsoft SQL Server 移植到 Oracle 数据.docx

    - **使用向导和脚本进行移植**: Oracle 移植工作台提供了一系列向导和脚本支持,帮助用户顺利完成从源数据库到目标数据库的移植。 - **在线或离线捕获**: 可选择在线捕获实时数据库活动,或离线捕获预先收集的元数据...

    oracle dba的官方教材3

    - **Oracle Grid Infrastructure for a Single Instance**:为了支持单实例数据库,Oracle提供了Grid Infrastructure,它包括了一系列的管理和监控工具,如自动存储管理(ASM)、Oracle Restart等。 - **课程示例:HR...

Global site tag (gtag.js) - Google Analytics