2013-07-06 1 views
0

У меня есть файл с ограничением на канал, который слишком велик для открытия в Excel. Я пытаюсь импортировать этот файл в MSSQL с помощью мастера импорта в SSMS.Как получить максимальную длину полей в огромном файле с разделителями каналов

Обычно, когда я это делаю, я открываю файл в Excel и использую функцию массива = MAX (LEN (An: Annnn)), чтобы получить максимальную длину каждого столбца. Затем я использую это, чтобы указать размер каждого поля в моей таблице.

Этот файл слишком велик для открытия в Excel, и SQL не проверяет все данные, чтобы дать точное предложение (я думаю, что это сумасшедший небольшой образец, например, 200 записей).

У кого-то есть решение этого (я не против делать что-то в Linux, особенно если это бесплатно).

Заранее благодарим за любую помощь.

+0

Создайте временную таблицу со столбцами, установленными на максимальный возможный размер для каждого столбца и его тип данных. Импортируйте в это, а затем вы можете выполнить фактический импорт из этой временной таблицы. –

ответ

0

Когда я импортирую текстовые данные в базу данных, как правило, я сначала считываю данные в промежуточную таблицу, где столбцы представляют собой достаточно длинные поля символов (скажем varchar(8000)).

Затем я загружаю из промежуточной таблицы в финальный стол:

create table RealTable (
    RealTableId int identity(1, 1) primary key, 
    Column1 int, 
    Column2 datetime, 
    Column3 varchar(12), 
    . . . 
); 

insert into RealTable(<all columns but id>) 
    select (case when column1 not like '[^0-9]' then cast(column1 as int) end), 
      (case when isdate(column2) = 1 then cast(column2 as datetime), 
      . . . 

Я считаю, это намного проще отладки проблем типа внутри базы данных, а не при вставке в базу данных.

+0

Извините за задержку в ответе. Я просто понял, что не ответил. Я закончил тем, что добавил инструмент под названием FileQuery в свой набор инструментов. Это позволяет мне открывать действительно большие текстовые файлы и фактически запускать некоторые базовые аналитические запросы против текстового файла. Спасибо за идеи! – user1038638

Смежные вопросы