Sql loader条件

时间:2012-01-19 13:31:24

标签: 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 

)

1 个答案:

答案 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 

)