现有一文本文件,每个数据之间是#号相隔,然后想将其导入到oralce数据库中 求大虾赐教!

解决方案 »

  1.   

    http://blog.chinaunix.net/u/25176/showart_376070.html你好好研究下吧。还是比较简单的。
      

  2.   

    -- 要导入数据库表中的文本文件test.txt的内容如下:(假设位于D:\exp)461999977150104,13512157566,2,2009-10-26 00:00:00.000,1
    461999977150104,13512157566,2,2009-11-15 00:00:00.000,1
    461999977150104,13512157566,2,2009-11-08 00:00:00.000,1
    461999977150104,13512157566,2,2009-12-24 00:00:00.000,1
    461999977150104,13512157566,2,2009-12-17 00:00:00.000,1-- 控制文件 insert.ctl 的内容如下:(假设位于D:\exp)load data
    infile "test.txt"
    append into table USERSTATUS_TMP0225D
    fields terminated by '#'
    (IMSI,
    MOBILE,
    USERSTATUS,
    DATETIME,
    SUMS
    )-- 用cmd命令:
    cd D:\exp-- 假定你向本地scott中的USERSTATUS_TMP0225D表中导入数据:
    -- 后面的 errors=2000表示允许插入时,发生错误的行数最大为2000
    -- 注意:下面的命令后面没有逗号,直接回车
    sqlldr scott/passwd control=insert.ctl errors=2000
      

  3.   

    -- 当然,如果某个字段类型为时间类型的话:要看你导入的时间类型的格式去初始化一下
    -- 如:
    load data
    infile "db0101-0224.txt"
    append into table CQHKPAYDES2
    fields terminated by ','
    (CHID,
    CHSID,
    PDTID,
    ITEMID,
    ITEMNAME,
    MOBILE,
    PAYAMOUNT,
    LINKID,
    PROVINCE,
    CITY,
    SERVICEID,
    PAYTIME date "YYYY-MM-DD HH24:MI:SS")
      

  4.   

    sqlldr! 网上可以查事例的!--input.ctl
    load data
    infile '/test/test.txt'    --文件所在位置
    replace into table tablename  --要导入的表名
    fields terminated by "," optionally enclosed by '"'  --文件中间的分隔符
    trailing nullcols
    (test01,   --字段
    test02,
    ....)
    --调用:
    sqlldr 用户/密码@数据库 control=../input.ctl   --input文件的位置
    bad=../test.txt      --文件错误记录