Sql loader条件

Sam*_*son 2 oracle plsql sql-loader

我可以在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 

)
Run Code Online (Sandbox Code Playgroud)

Joh*_*yle 6

SQL*Loader中的条件可以使用decode.

DECIMAL在您的示例中使用a 将得到错误:

SQL*Loader-402: Unable to determine length of column COL1 from specification
Run Code Online (Sandbox Code Playgroud)

建议使用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 

)
Run Code Online (Sandbox Code Playgroud)