Импорт текстового файла в SQL Server с ограниченным размером полей и без разделителя [duplicate]

Вы используете объект, содержащий ссылку нулевого значения. Таким образом, он дает пустое исключение. В примере строковое значение равно null, и при проверке его длины произошло исключение.

Пример:

string value = null;
if (value.Length == 0) // <-- Causes exception
{
    Console.WriteLine(value); // <-- Never reached
}

Ошибка исключения:

Необработанное исключение:

System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. в Program.Main ()

6
задан Phillip Senn 29 September 2010 в 22:13
поделиться

2 ответа

Я думаю, вам нужно определить файл формата

, например

BULK INSERT TableA FROM 'C:\Temp\TableA.txt'
WITH FORMATFILE = 'C:\Temp\Format.xml'
SELECT * FROM TableA

. Для этого, очевидно, вам нужен файл формата.

См. здесь общую информацию о создании:

Создание файла формата

По угадыванию, глядя на схему , что-то вроде этого может сделать это:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
  <FIELD ID="1" xsi:type="CharFixed" LENGTH="3"/>
  <FIELD ID="2" xsi:type="CharFixed" LENGTH="3"/>
</RECORD>
<ROW>
  <COLUMN SOURCE="1" NAME="Field1" xsi:type="SQLCHAR" LENGTH="3"/>
  <COLUMN SOURCE="2" NAME="Field2" xsi:type="SQLCHAR" LENGTH="3"/>
</ROW>
</BCPFORMAT>
12
ответ дан codeulike 26 August 2018 в 08:29
поделиться

Вы хотите использовать файл формата с вашим BULK INSERT . Что-то вроде:

9.0
2
1     SQLCHAR     0     03     ""         1     Field1          ""
2     SQLCHAR     0     03     "\r\n"     2     Field2          ""
3
ответ дан Joe Stefanelli 26 August 2018 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: