Как вы настраиваете FastExport, чтобы НЕ экспортировать Float в научной нотации? - PullRequest
0 голосов
/ 29 февраля 2012

Мы пытаемся загрузить файл, созданный в результате быстрого экспорта, в базу данных Oracle.
Однако столбец Float экспортируется следующим образом: 1.47654345670000000000 E010.

Как настроить fastexport для экспорта следующим образом: 14765434567.

Мы загружаем экспортированный файл в нашу базу данных Oracle с помощью SQL * Loader

Обновление:
Первоначально он использовал: cast(XXXX as varchar(500)) в запросе, предоставленномFastExport.

1 Ответ

2 голосов
/ 02 марта 2012

Решение состоит в том, чтобы использовать cast(cast(FLOAT_VAL as FORMAT 'Z(16)') as varchar(16))

Чтобы сделать все это числовым и заполнить его пробелами: cast(FLOAT_VAL as FORMAT 'Z(16)')

Чтобы удалить заполнение: cast(<VALUE> as varchar(16))

Альтернативное решение: trim(cast(FLOAT_VAL as FORMAT 'Z(16)'))

.logtable sysdba.TABLE_NAME;
.run file XXX/XXXXX/XXXXXX/XXXXX.btq;
.begin export;
.export outfile /XXX/XXX/XXX/XXX/YYYYYYY.YYYYYYYYYY_19000100-19000100 MODE RECORD FORMAT TEXT;
SELECT cast( cast(cast(FLOAT_VAL as FORMAT 'Z(16)') as varchar(16))
          || case when XXXXXXXXXXXXXXXXXXXX      is null then '|' else cast(XXXXXXXXXXXXXXXXXXXX      as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXXXXXXXX     is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXX     as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
          || case when XXXXXX                    is null then '|' else cast(XXXXXX                    as varchar(500)) || '|' end
          || case when XXXXXXXXXX                is null then '|' else cast(XXXXXXXXXX                as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXX           is null then '|' else cast(XXXXXXXXXXXXXXX           as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXXXXXXXX     is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXX     as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXXX          is null then '|' else cast(XXXXXXXXXXXXXXXX          as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXXXX         is null then '|' else cast(XXXXXXXXXXXXXXXXX         as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXX            is null then '|' else cast(XXXXXXXXXXXXXX            as varchar(500)) || '|' end
          || case when XXXXXXXXXXXXXXX           is null then '|' else cast(XXXXXXXXXXXXXXX           as varchar(500))        end
       as char(360))
  from YYYYYYY.YYYYYYYYYY;
.end export;
...