0

我想在日志和我创建的临时表中插入被拒绝的记录。但这是我的代码问题,我是创建 CTL 和 Shell 脚本的新手。

这是我的代码:

LOAD DATA
INFILE 'open_account .csv'
BADFILE 'open_account.bad'
DISCARDFILE 'open_account.dsc'
APPEND
INTO TABLE accountrequest_temp
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' | TRAILING NULLCOLS
(Branch,
Account_Type,
Title,
FirstName,
Lastname,
Birthday,
WorkPhone,
HomePhone,
Address,
State,
Zip,
Email,);

这是我的错误:

$ sqlldr hr/password, control=loaddata.ctl

SQL*Loader: Release 11.2.0.2.0 - Production on Tue Aug 17 11:20:06 2021

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-350: Syntax error at line 7.
Illegal combination of non-alphanumeric characters
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' | TRAILING NULLCO
4

1 回答 1

2

错误不少。提到其中一些:

  • 不要用分号终止列列表
    • 这就是为什么你得到“非法组合......”错误
  • |去掉前面的管道标志( )trailing nullcolls
  • 删除 infile 文件名中的空格

修复后,它可以工作。我重新使用accountRrequest了我们昨天创建的表(名称中有错字),只是重命名了它。这就是为什么我的专栏列表与您的有所不同的原因。

控制文件:

LOAD DATA
INFILE 'open_account.csv'
BADFILE 'open_account.bad'
DISCARDFILE 'open_account.dsc'
APPEND
INTO TABLE accountrequest_temp
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
TRAILING NULLCOLS
(
requestid,
Branch,
Account_Type,
Title,
FirstName,
Lastname,
Birthday,
WorkPhone,
HomePhone,
Address,
State,
Zip,
Email,
status
)

示例数据(在 open_account.csv 文件中):

1,Brnch, type1,Mr.,Little,Foot,,123456,543123,Ilica 20,Croatia,10000,little@foot.com,Entered

加载会话:

SQL> $sqlldr scott/tiger@kc11gt control=test39.ctl log=test39.log

SQL*Loader: Release 11.2.0.1.0 - Production on Uto Kol 17 07:18:34 2021

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 1

结果:

SQL> select * from accountrequest_temp;

 REQUESTID BRANCH          ACCOUNT_TYPE    TITL FIRSTNAME       LASTNAME        BIRTHDAY
---------- --------------- --------------- ---- --------------- --------------- -------------------
 WORKPHONE  HOMEPHONE ADDRESS                        STATE                  ZIP
---------- ---------- ------------------------------ --------------- ----------
EMAIL                          STATUS
------------------------------ ----------
         1 Brnch           type1           Mr.  Little          Foot
    123456     543123 Ilica 20                       Croatia              10000
little@foot.com                Entered


SQL>
于 2021-08-17T05:23:09.627 回答