SQLLDR错误:尝试将数据插入数据库时​​,对象不存在

时间:2010-12-05 03:53:57

标签: sql sql-loader

我正在尝试使用sql ldr-

将数据上传到表中
sqlldr userid=aa2012/uaxiqdz@ADB control=simple.ctl

simple.ctl: -

LOAD DATA
INFILE '../data/simple.csv'
BADFILE '../data/simple.bad'
DISCARDFILE '../data/simple.dsc'
INTO TABLE SIMPLE_TAB
replace
fields terminated by ',' optionally enclosed by '"'
(
  ID INTEGER 

EXTERNAL, 
  NAME CHAR(32)
)

simple.csv有两列:1st-number 2nd Name。

create table Simple_Tab (
  id    number primary key,
  name  varchar2(32)
)

但是我收到以下错误 -

  

SQL * Loader:版本10.2.0.1.0 -   生产于12月4日星期六22:43:55

     

版权所有(c)1982,2005,Oracle。所有   保留权利。

     

SQL * Loader-941:描述期间出错   表SIMPLE_TAB ORA-04043:对象   SIMPLE_TAB不存在

我试过了 -

  1. 小心选择存储文件的文件路径。
  2. 删除并重新创建表格SIMPLE_TAB
  3. 在所有命令中小心使用大写
  4. 但没人帮忙。

3 个答案:

答案 0 :(得分:1)

当您运行create table语句时,您可能已连接到其他数据库(或用户)。

select user from dual;在SQL * Plus中运行时显示的内容(例如,在运行create table之后/之前)

答案 1 :(得分:0)

今天有同样的问题。就我而言,我认为表名是tblname,实际上它是"tblname"(带引号)。

我也使用SQL Developer,而Schema浏览器显示表名为tblname,这让我很愚蠢。只有当我使用拖放实用程序从此表创建一个select命令时,我才看到表名实际上包含引号。

答案 2 :(得分:0)

当您不使用架构名称限定控制文件中的表名时,可能会发生另外一个原因。

因此,如果您的表位于模式scott中并且您的表名不符合此条件,那么当您使用scott以外的登录用户时,Sqlldr会抱怨。