Oracle SQL*Loader WHEN 子句引发错误 2 Oracle 文档数据:CTL 文件:结果:

问题描述

我正在尝试使用 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 5

Table 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 (将#修改为@)