Проблема с управляющим файлом Oracle Sql Loader - PullRequest
0 голосов
/ 14 июля 2009

Я пытаюсь загрузить некоторые данные с помощью sql loader. Вот вершина моего файла управления / данных:

LOAD DATA
INFILE *
APPEND INTO TABLE economic_indicators
FIELDS TERMINATED BY ','
(ASOF_DATE DATE 'DD-MON-YY',
VALUE FLOAT EXTERNAL,
STATE,
SERIES_ID INTEGER EXTERNAL,
CREATE_DATE DATE 'DD-MON-YYYY')
BEGINDATA
01-Jan-79,AL,67.39940538,1,23-Jun-2009

... множество других строк данных.

Проблема в том, что sql loader не распознает указанные мной типы данных. Это файл журнала:

Table ECONOMIC_INDICATORS, loaded from every logical record.
Insert option in effect for this table: APPEND

Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
ASOF_DATE                           FIRST     *   ,       DATE DD-MON-YY       
VALUE                                NEXT     *   ,       CHARACTER            
STATE                                NEXT     *   ,       CHARACTER            
SERIES_ID                            NEXT     *   ,       CHARACTER            
CREATE_DATE                          NEXT     *   ,       DATE DD-MON-YYYY     

value used for ROWS parameter changed from 10000 to 198
Record 1: Rejected - Error on table ECONOMIC_INDICATORS, column VALUE.
ORA-01722: invalid number

... много похожих ошибок, ожидаемых при попытке вставить данные char в числовой столбец.

Я не пробовал спецификацию типов данных, все другие числовые спецификации и всегда одну и ту же проблему. Есть идеи?

Кроме того, есть идеи, почему он меняет параметр Rows?

1 Ответ

3 голосов
/ 14 июля 2009

Из вашего примера, SQL * Loader попытается преобразовать строку «AL» в числовое значение, что приведет к сообщению об ошибке, которое вы дали. Пример данных выглядит так, как если бы он был десятичным числом в третьей позиции, а не вторым, как указано в списке столбцов.

...