从Shell脚本执行时出现SQL * Loader错误

时间:2018-09-25 17:02:52

标签: oracle sql-loader

遇到错误

  

LRM-00116:')'之后的')'语法错误

从外壳程序脚本执行以下SQL * Loader语句时

。但是,如果我执行与命令行参数相同的单个语句,那么它可以正常工作。

请帮助您了解此错误?

sqlldr USR/PWD@HOST control=<(echo "LOAD DATA INFILE input.csv BADFILE input.csv_bad DISCARDFILE input.csv_dsc INSERT INTO table TEMP_INPUT_TBL FIELDS TERMINATED BY ',' TRAILING NULLCOLS (CBPID,SAM_KEY,HHID)") 

1 个答案:

答案 0 :(得分:1)

为什么要那样做?通常,您需要创建一个控制文件(我们将其称为load.ctl),然后在运行SQL * Loader时使用它,例如

LOAD DATA 
INFILE input.csv 
BADFILE input.csv_bad 
DISCARDFILE input.csv_dsc 

INSERT INTO table TEMP_INPUT_TBL 
FIELDS TERMINATED BY ',' 
TRAILING NULLCOLS 
(CBPID,SAM_KEY,HHID)

然后

sqlldr USR/PWD@HOST control=load.ctl