Преобразование типов данных в SSIS - PullRequest
0 голосов
/ 20 октября 2010

Я получаю входной CSV-файл, который мне нужно загрузить в базу данных Oracle.

Вот некоторые примеры данных

ContractId, Date, HourEnding, ReconciledAmount
13860,"01-mar-2010",1,-.003
13860,"01-mar-2010",2,.923
13860,"01-mar-2010",3,2.542

Мне нужно преобразовать входящий столбец в DB_TIMESTAMP (чтобы соответствовать структуре в таблице назначения).

Но когда я использую Data Conversion для конвертации, я получаю ошибку

Data conversion failed while converting column "Date" (126) to column "Date" (496). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.

Что я должен сделать, чтобы правильно преобразовать эти данные?

Ответы [ 2 ]

4 голосов
/ 20 октября 2010

Что вы могли бы сделать в этой ситуации, так это изменить текстовый квалификатор в вашем соединении с плоским файлом на одинарную двойную кавычку (").

Это приведет к интерпретации SSIS

13860,"01-mar-2010",1,-.003

as

13860,01-mar-2010,1,-.003

Это также имеет дополнительный бонус за возможность ловить любые встроенные запятые в ваших данных, если они также заключены в кавычки.

2 голосов
/ 20 октября 2010

Проблема в кавычках [ "] в файле. Вы должны удалить их из файла или добавить Derived Column перед Data Conversion компонентом, чтобы удалить " с выражением

ЗАМЕНИТЬ ([TextDateColumn], "\"», "")

...