我可以在SQL LOADER中执行类似的操作吗?
LOAD DATA
INFILE 'table_with_one_million_rows.dat'
INTO TABLE TABLE_WITH_ONE_MILLION_ROWS
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
COL1 DECIMAL
, COL2 DECIMAL IF COL1='X' '1' else '0'
, COL3 CHAR
)
答案 0 :(得分:6)
可以使用decode
执行SQL * Loader中的条件。
在您的示例中使用DECIMAL
将收到错误:
SQL*Loader-402: Unable to determine length of column COL1 from specification
建议使用DECIMAL EXTERNAL
代替:
LOAD DATA
INFILE 'table_with_one_million_rows.dat'
INTO TABLE TABLE_WITH_ONE_MILLION_ROWS
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
COL1 DECIMAL EXTERNAL
, COL2 DECIMAL EXTERNAL "decode(:COL2, 'X', '1', '0')"
, COL3 CHAR
)