Вставка CSV с пустым значением в таблицу SQL со столбцом BIGINT - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь вставить несколько файлов CSV в таблицу SQL Server (2016).Один из файлов CSV содержит пустое значение, например:

ID, VALUE, DATE
235425, 34, '2018-05-08'
234567, , '2018-05-08'
233456, 67, '2018-05-08' 

Запущенный мной процесс пытается вставить это значение в столбец BIGINT, и пустое значение, по-видимому, прерывает процесс, что приводит кследующее сообщение об ошибке:

Ошибка преобразования типа данных nvarchar в bigint

Может кто-нибудь пролить свет на лучшие шаги для устранения или устранения этой проблемы?

1 Ответ

0 голосов
/ 08 мая 2018

Как правило, вы должны сначала вставить все данные как есть в промежуточную таблицу. Это имеет два преимущества:

  1. При переносе из файла на сервер SQL данные не теряются
  2. Затем вы можете работать с промежуточными таблицами, используя запросы SQL, которые намного быстрее, чем любые внешние процессы.

вы также можете использовать запросы с функциями TRY_PARSE или TRY_CONVERT или TRY_CAST для вставки данных, как показано ниже

INSERT INTO Tbl
SELECT ID,
Value= TRY_CAST(Value as bigint),
Date= TRY_CAST(Date as date)
FROM stagingTbl
...