加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何在sqlldr中倒入多字符分隔符文件

(2009-09-19 10:52:29)
标签:

oracle

sql

loader

it

分类: oracle
今天有朋友询问:
我们...应用系统很多,它们之间要交换很多数据,目前是以文本方式交换,问题是文本的分隔符号是(|+|),为三个字符,主要是避免数据的混淆.....

这样的文件能够用sqlldr导入么?

我测试了一下,试验证明是可以的,sqlldr支持多字符分隔符文件导入。
首先看我的数据文件和控制文件:

    [oracle@jumper tmp]$ cat data.ctl
    load data
    into table TEST
    fields terminated by "|+|"
    (
    T_ID,
    T_VOL
    )
    [oracle@jumper tmp]$ cat data.txt
    20021228000000|+|00120000
    20021228000000|+|00130000
    20021228000000|+|00140000
    20021||8000000|+|00140000
    20021++8000000|+|00140000


创建测试表:

    [oracle@jumper tmp]$ sqlplus eygle/eygle

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 21 13:21:16 2006

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    SQL> create table test
    2 (T_ID varchar2(20),
    3 T_VOL varchar2(20)
    4 );

    Table created.

    SQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

加载数据:

    [oracle@jumper tmp]$ sqlldr eygle/eygle control=data.ctl data=data.txt

    SQL*Loader: Release 9.2.0.4.0 - Production on Tue Nov 21 13:23:53 2006

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

    Commit point reached - logical record count 5
    [oracle@jumper tmp]$ sqlplus eygle/eygle

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 21 13:23:57 2006

    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    SQL> select * from test;

    T_ID T_VOL
    -------------------- --------------------
    20021228000000 00120000
    20021228000000 00130000
    20021228000000 00140000
    20021||8000000 00140000
    20021++8000000 00140000

    SQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

只作了简单验证,不知道复杂情况会不会有问题。
(本文转自:http://www.eygle.com/archives/2006/11/sqlldr_multi_separator.html)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有