Невозможно выполнить массовую загрузку. Файл c:\data.txt не существует

У меня проблема с чтением данных из текстового файла в ms sql. Я создал текстовый файл в моем c:\ с именем data.txt, но по какой-то причине сервер ms 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

person Daniel Brink    schedule 17.05.2010    source источник
comment
В качестве примечания, вставка BULK - это не SQL, это расширение MS SQL Server.   -  person extraneon    schedule 17.05.2010


Ответы (3)


Это выполняется на сервере, поэтому он ищет C:\data.txt на диске C: сервера.

Также убедитесь, что используемая вами учетная запись имеет права на чтение на диске C:.

person Alex K.    schedule 17.05.2010
comment
Итак, для некоторых мы уже получили это, но так.. что изменилось, чтобы заставить его работать? Чтобы вытащить файл с вашего локального диска через сеть? Или отсутствует заявление о том, что сервер не может вытащить файл по какому-то IP-адресу или что-то в этом роде? Ура - Джереми - person Quantum; 08.12.2011
comment
Вам нужно будет вытащить его за акцию unc - person Alex K.; 08.12.2011
comment
Сэмма!! (На тамильском) - Только теперь я знаю этот момент. Спасибо. - person Pugal; 01.04.2021

Этот файл находится на диске C:\ SQL Server?? SQL BULK INSERT и т. д. всегда работает только с локальным диском на машине с SQL Server. Ваш SQL Server не может получить доступ к вашему локальному диску.

Вам нужно поместить файл на диск C:\ SQL Server и повторить попытку.

Обновление: @bp_, хорошо, правильно — файл может также находиться в общем ресурсе, к которому вы можете получить доступ с компьютера SQL Server, используя путь UNC. Но опять же: эта общая папка должна быть создана первой, и пользователь, под которым запущен процесс SQL Server, должен иметь права доступа к этой общей папке. Вы не можете просто взять файл с локального диска на вашем ПК, не настроив сначала довольно много накладных расходов на инфраструктуру.

person marc_s    schedule 17.05.2010

В основном это проблема разрешения. у вас может не быть разрешения на этот диск. Убедитесь, что используемая вами учетная запись имеет разрешение на чтение или, если возможно, на полный доступ. Это сработало для меня на локальной машине.

person Abde    schedule 13.01.2017