Я пытаюсь читать в текстовом файле из SQL-запроса (SQL Server 2005), но не имею никакой удачи вообще. Я попробовал различные вещи ДОЛЖНОСТНЫМ ЛИЦОМ и xp_cmdshell, но все не работают. Это - общий способ, которым я попытался приблизиться к этому:
CREATE TABLE temp (data varchar(2000));
INSERT temp EXEC master.dbo.xp_cmdshell 'type file.txt';
Я тогда пытаюсь выбрать данные из временной таблицы. Я искал вокруг много, и я не могу сказать то, что я понимаю превратно. Справка?
] Как выглядит ваш текстовый файл??? Каждая строка - запись?[
] []Вы должны проверить утверждение []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'
)
]
[]Кажется, он отлично работает в моем тестовом окружении :-)[
].Нужно сделать это один раз или в рамках нормальной работы с базой данных (т.е. в ответ на триггер, запланированное событие и т.д.)?
В любом случае, лучше создать пакет SSIS.
Я не использовал dbo.xp_cmdshell (в вашем примере), но думаю, что проблема заключается в захвате вывода.