如何在 SQL Loader 的条件下处理 space?

How to handle space in condition in SQL Loader?

我有一个 dat 文件要加载到数据库中。 我的代码如下。

LOAD DATA
INFILE 'ABC.DAT'
APPEND
INTO TABLE RECORDS WHEN (COL1 ='F')
(
COL1 POSITION(1:1),
 COL2 POSITION(2:6),
 ...
)
INTO TABLE RECORDS WHEN (COL1 =' ')
(

COL1 POSITION(1:1),
COL3 POSITION(2:6),
 ...
)

第一个条件工作正常,但第二个 when 子句总是失败。 我尝试用 COL1 !-'F' 检查它,但这也无济于事。

有人知道如何处理 when 子句中的 space 吗?

构造您的 when 子句以按位置而不是列名测试字符,如下所示:

LOAD DATA
INFILE 'ABC.DAT'
APPEND
INTO TABLE RECORDS WHEN (1) = 'F'
(
COL1 POSITION(1:1),
 COL2 POSITION(2:6),
 ...
)
INTO TABLE RECORDS WHEN (1) = ' '
(

COL1 POSITION(1:1),
COL3 POSITION(2:6),
 ...
)