Не може да се зарежда групово. Файлът 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

Този файл на SQL Server C:\ устройство ли е?? 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