问题描述
我正在尝试使用 SQL*Loader 排除数据文件的最后一行,使用 WHEN 子句,但是当它到达该行时,它会同时填充坏文件和丢弃文件,并引发错误 2。
要忽略的行是最后一行,以“NOL”开头。
经过一番阅读,Error 2 是关于CTL 文件的synatx 的警告,但无法找出错误的地方。注意,如果我删除最后一行,然后运行相同的 CTL 文件,则不会引发 ERROR,因此问题不可能是 CTL 文件的语法。
为了解决这个问题,我在加载数据之前删除了最后一行,但想找出问题是什么,以便将来使用 WHEN 子句。
我试过了:
- file_dt != 'NOL'
- (1:1) !='N'
- . . .
但是我得到了同样的错误 2
。有没有其他人遇到过这个问题?或者有什么我可以尝试的?
Oracle 文档
SQL*Loader Command-Line Reference对于 UNIX,退出代码如下:
EX_SUCC 0 EX_FAIL 1 EX_WARN 2 EX_FTL 3
数据:
File-Date,Number 2021-05-04,24 2021-05-04,24 NOL: 4
CTL 文件:
OPTIONS (READSIZE=51200001,BINDSIZE=51200000,ROWS=5000,ERRORS=0,SKIP=1) load data append into table SOME_SCHEMA.SOME_TABLE WHEN (01) 'NOL' fields terminated by ';' OPTIONALLY ENCLOSED BY '"' AND '"' trailing nullcols ( file_dt DATE "YYYY-MM-DD",a_number )
结果:
Path used: Conventional Commit point reached - logical record count 5Table SOME_SCHEMA.SOME_TABLE: 4 Rows successfully loaded.
Check the log file: loading-file.log for more information about the load. 2021-05-06 09:42:12: Finished Loading Data into Table 2021-05-06 09:42:12: Status: 2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)