Sql условия погрузчика - PullRequest
       15

Sql условия погрузчика

2 голосов
/ 19 января 2012

Могу ли я сделать что-то подобное в 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 Ответ

6 голосов
/ 19 января 2012

Условие в SQL * Загрузчик может быть выполнен с использованием decode.

Использование 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 

)
...