【发布时间】:2021-05-06 09:18:34
【问题描述】:
我正在尝试使用 SQL*Loader 使用 WHEN 子句排除数据文件的最后一行,但是当它到达该行时,它会填充坏文件和丢弃文件,并引发错误 2。
要忽略的行是最后一行,以“NOL”开头。
经过一番阅读,错误2是关于CTL文件的synatx的警告,但无法找出错误的地方。注意,如果我删除最后一行,然后运行 SAME 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数据:
文件-日期、编号 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
【问题讨论】:
标签: oracle unix sql-loader ctl