У меня есть проблема при чтении данных с текстового файла в мс sql. Я создал текстовый файл в своем c:\ called data.txt, но по некоторым причинам SQL-сервер мс не может найти файл. Я добираюсь, ошибка "Не может увеличить объем загрузки. Файл "c:\data.txt" не существует". Какие-либо идеи?
Файл данных (да, я знаю данные, выглядит дрянным, но в реальном мире это - то, как это прибывает от клиентов):
01-04 10.338,18 0,00 597.877,06- 5 0,7500 62,278-
06-04 91.773,00 9.949,83 679.700,23- 1 0,7500 14,160-
07-04 60.648,40 149.239,36 591.109,27- 1 0,7500 12,314-
08-04 220.173,70 213.804,37 597.478,60- 1 0,7500 12,447-
09-04 986.071,39 0,00 1.583.549,99- 3 0,7500 98,971-
12-04 836.049,00 1.325.234,79 1.094.364,20- 1 0,7500 22,799-
13-04 38.000,00 503.010,49 629.353,71- 1 0,7500 13,111-
14-04 286.400,00 840.126,50 75.627,21- 1 0,7500 1,575-
Sql:
CREATE TABLE #temp
(
vchCol1 VARCHAR (50),
vchCol2 VARCHAR (50),
vchCol3 VARCHAR (50),
vchCol4 VARCHAR (50),
vchCol5 VARCHAR (50),
vchCol6 VARCHAR (50),
vchCol7 VARCHAR (50)
)
BULK insert #temp
FROM 'c:\data.txt'
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
select * from #temp
drop table #temp
Это выполняется на сервере, поэтому он ищет C:\data.txt
на диске C:
сервера.
Также убедитесь, что используемый вами логин имеет права на чтение на диске C:.
Находится ли этот файл на диске C:\ сервера SQL? SQL BULK INSERT и т.д. всегда работает только с локальным диском на машине SQL Server. Ваш SQL Server не может попасть на ваш собственный локальный диск.
Вам нужно поместить файл на диск C:\ SQL Server и попробовать снова.
Обновление: @bp_, хорошо, правильно - файл может также находиться на общем ресурсе, к которому вы можете получить доступ с машины SQL Server, используя путь UNC. Но опять же: этот ресурс должен быть сначала создан, а пользователь, под которым запущен процесс SQL Server, должен иметь права доступа к этому ресурсу. Вы не можете просто взять файл с локального диска на вашем компьютере, не создав сначала довольно много инфраструктурных затрат
.