如何在 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),
...
)
我有一个 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),
...
)