我正在尝试使用 SQL*Loader 使用 WHEN 子句排除数据文件的最后一行,但是当它到达该行时,它会填充坏文件和丢弃文件,并引发错误 2。
要忽略的行是最后一行,以“NOL”开头。
经过一番阅读,错误2是关于CTL文件的synatx的警告,但无法找出错误的地方。注意,如果我删除最后一行,然后运行 SAME CTL 文件,则不会引发 ERROR,因此问题不是 CTL 文件的语法。
为了解决这个问题,我在加载数据之前删除了最后一行,但想找出问题是什么,以便将来使用 WHEN 子句。
我努力了:
- file_dt != 'NOL'
- (1:1) != 'N'
- . . .
但是我得到了同样的错误2
.有没有其他人遇到过这个问题?或者有什么我可以尝试的?
甲骨文文档
SQL*Loader 命令行参考对于 UNIX,退出代码如下:
EX_SUCC 0 EX_FAIL 1 EX_WARN 2 EX_FTL 3
数据:
文件日期、编号 2021-05-04,24 2021-05-04,24 2021-05-04,24 2021-05-04,24 无:4
CTL 文件:
选项(READSIZE=51200001,BINDSIZE=51200000,ROWS=5000,ERRORS=0,SKIP=1) 加载数据 附加 进入表 SOME_SCHEMA.SOME_TABLE 当 (01) 'NOL' 以“;”结尾的字段 可选地由 '"' 和 '"' 包围 尾随空列 ( file_dt DATE "YYYY-MM-DD", 一个号码 )
结果:
使用路径:常规 已达到提交点 - 逻辑记录计数 5表 SOME_SCHEMA.SOME_TABLE: 4 行已成功加载。
检查日志文件: 加载文件.log 有关负载的更多信息。 2021-05-06 09:42:12:完成将数据加载到表中 2021-05-06 09:42:12:状态:2