我的oracle 10g 中有一个表,表中有两列 如下:   NO NAME
----- ----------
    1 owen我想把一个 txt 文件中的内容导入到这个表中,input.ctl 文件内容如下:
load data
infile 'c:\test.txt'
append into table sys.test
fields terminated by ","   
( no,name )test.txt 中的文件内容如下 :2,wenm,
3,jing,
4,toy,执行 c:\>sqlldr userid=system/111111@XE control=input.ctl 后出现的日志内容如下: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数据没有插入成功,请问各们高手如何解决?????小弟不胜感激

解决方案 »

  1.   

    ORA-01031: insufficient privileges
    表示你的权限不够,你是插入sys.test,而用system用户,当然无法插入
      

  2.   

    我改为了 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真是晕倒.......还得请教各位高人啊!!!!!!
      

  3.   

    你可以先在SQLPLUS中以sysdba身份登陆,然后将test表的所有权限给system,再执行
    sqlldr userid=system/111111@XE control=input.ctl 
    不过,一般不要用sysdba身份创建用户表。