Чтение текстового файла с SQL Server

Я пытаюсь читать в текстовом файле из SQL-запроса (SQL Server 2005), но не имею никакой удачи вообще. Я попробовал различные вещи ДОЛЖНОСТНЫМ ЛИЦОМ и xp_cmdshell, но все не работают. Это - общий способ, которым я попытался приблизиться к этому:

CREATE TABLE temp (data varchar(2000));
INSERT temp EXEC master.dbo.xp_cmdshell 'type file.txt';

Я тогда пытаюсь выбрать данные из временной таблицы. Я искал вокруг много, и я не могу сказать то, что я понимаю превратно. Справка?

33
задан marc_s 5 January 2010 в 18:05
поделиться

2 ответа

[

] Как выглядит ваш текстовый файл??? Каждая строка - запись?[

] [

]Вы должны проверить утверждение []BULK INSERT[] - это должно выглядеть как:[

] [
BULK INSERT dbo.YourTableName
FROM 'D:\directory\YourFileName.csv'
WITH
(
  CODEPAGE = '1252',
  FIELDTERMINATOR = ';',
  CHECK_CONSTRAINTS
) 
] [

]Здесь, в моем случае, я импортирую CSV-файл - но вы также должны иметь возможность импортировать текстовый файл.[

] [

]Из документации MSDN - вот пример, который, надеюсь, работает для текстового файла с одним полем в строке:[

] [
BULK INSERT dbo.temp 
   FROM 'c:\temp\file.txt'
   WITH 
      (
         ROWTERMINATOR ='\n'
      )
] [

]Кажется, он отлично работает в моем тестовом окружении :-)[

].
41
ответ дан 27 November 2019 в 17:51
поделиться

Нужно сделать это один раз или в рамках нормальной работы с базой данных (т.е. в ответ на триггер, запланированное событие и т.д.)?

В любом случае, лучше создать пакет SSIS.

  1. В SQL Management Studio щелкните правой кнопкой мыши по базе данных.
  2. Выберите Tasks|Import Data...
  3. Следуйте инструкциям мастера. Выберите "плоский текстовый файл" в качестве провайдера при запросе.

Я не использовал dbo.xp_cmdshell (в вашем примере), но думаю, что проблема заключается в захвате вывода.

0
ответ дан 27 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

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