把数据文件中的逗号都替换成TAB(就是ascii码值为9的字符),或者把控制文件改为
fields terminated by ','

解决方案 »

  1.   

    txt 文件中的内容是不可能更改的,我改了控制文件中的,出现了如下错误
    C:\>sqlldr userid=system/111111@XE control=input.ctlSQL*Loader: Release 10.2.0.1.0 - Beta on 星期三 12月 21 17:47:40 2005Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL*Loader-643: error executing INSERT statement for table SYS.TEST
    ORA-01031: insufficient privileges
    SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.控制文件内容如下:
    load data
    infile 'c:\test.txt'
    append into table sys.test
    fields terminated by ","
    optionally enclosed by ','   
    ( no,name )
    不知如何解决哦,还得麻烦大家看看啊
      

  2.   

    控制文件内容改为:
    load data
    infile 'c:\test.txt'
    append into table sys.test
    fields terminated by ","
    (no,name)即去掉optionally enclosed by ','这句
      

  3.   

    我按照楼上的做了,还是出现下面这段话:
    C:\>sqlldr userid=system/111111@XE control=input.ctlSQL*Loader: Release 10.2.0.1.0 - Beta on 星期三 12月 21 19:54:18 2005Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL*Loader-643: error executing INSERT statement for table SYS.TEST
    ORA-01031: insufficient privileges
    SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.但这次出现的日志不一样了,名字变为了input.log,内容如下:SQL*Loader: Release 10.2.0.1.0 - Beta on 星期三 12月 21 19:54:18 2005Copyright (c) 1982, 2005, Oracle.  All rights reserved.Control File:   input.ctl
    Data File:      c:\test.txt
      Bad File:     test.bad
      Discard File:  none specified
     
     (Allow all discards)Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     64 rows, maximum of 256000 bytes
    Continuation:    none specified
    Path used:      ConventionalTable SYS.TEST, loaded from every logical record.
    Insert option in effect for this table: APPEND   Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    NO                                  FIRST     *   ,       CHARACTER            
    NAME                                 NEXT     *   ,       CHARACTER            SQL*Loader-643: error executing INSERT statement for table SYS.TEST
    ORA-01031: insufficient privilegesSQL*Loader-2026: the load was aborted because SQL Loader cannot continue.Table SYS.TEST:
      0 Rows successfully loaded.
      0 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    Space allocated for bind array:                  33024 bytes(64 rows)
    Read   buffer bytes: 1048576Total logical records skipped:          0
    Total logical records read:             3
    Total logical records rejected:         0
    Total logical records discarded:        0Run began on 星期三 12月 21 19:54:18 2005
    Run ended on 星期三 12月 21 19:54:20 2005Elapsed time was:     00:00:02.26
    CPU time was:         00:00:00.14
      

  4.   

    SQL*Loader-643: error executing INSERT statement for table SYS.TEST
    ORA-01031: insufficient privileges
    很明显权限不够,用userid=sys/...试试
      

  5.   

    我改为了 C:\>sqlldr userid=sys/111111@XE control=input.ctl
    执行后却又出现如下问题:SQL*Loader: Release 10.2.0.1.0 - Beta on 星期四 12月 22 09:07:50 2005Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL*Loader-128: unable to begin a session
    ORA-28009: connection as SYS should be as SYSDBA or SYSOPER真是晕倒.......还得请教各位高人啊!!!!!!
      

  6.   

    faint,不要在SYS用户下建表,也不要在SYS用户下测试。随便新建一个用户不好吗?CRAETE USER TEST IDENTIFIED BY TEST;给TEST各种配额、权限之类的,想怎么测试都可以啊