Подтвердить что ты не робот

Невозможна загрузка навалом, так как файл не может быть открыт. Код ошибки операционной системы 3

Я пытаюсь настроить хранимую процедуру как работу агента SQL Server, и это дает мне следующую ошибку:

Невозможно выполнить массовую загрузку, так как файл "P:\file.csv" не может быть открыт. Код ошибки операционной системы 3 (не удалось получить текст для этой ошибки. Причина: 15105). [SQLSTATE 42000] (Ошибка 4861)

Забавно, что хранимая процедура работает нормально, когда я выполняю ее вручную.

Привод P: - это общий диск на Windows SQL Server от LINUX через Samba Share, и он был настроен, выполнив следующую команду:

EXEC xp_cmdshell 'net use P: "\ lnxusanfsd01\Data" Пароль/пользователь: имя пользователя/постоянный: да'

Любая помощь по этому поводу будет высоко оценена

4b9b3361

Ответ 1

Я не знаю, решила ли вы эту проблему, но у меня была такая же проблема, если экземпляр является локальным, вы должны проверить разрешение на доступ к файлу, но если вы получаете доступ с вашего компьютера на сервер (удаленный доступ), у вас есть для указания пути на сервере, поэтому это означает включение файла в каталог сервера, который разрешил мой случай

Пример:

BULK INSERT Table
FROM 'C:\bulk\usuarios_prueba.csv' -- This is server path not local
WITH 
  (
     FIELDTERMINATOR =',',
     ROWTERMINATOR ='\n'
  );

Ответ 2

Чтобы это было просто, , я просто изменил каталог, из которого я импортировал данные в локальную папку на сервере.

У меня был файл, расположенный в общей папке, я просто скопировал свои файлы на "c:\TEMP\Reports" на моем сервере (обновил запрос до BULK INSERT из новой папки). Задача агента выполнена успешно:)

Наконец, после долгого времени я могу автоматически вставлять BULK Insert через задание агента.

С уважением.

Ответ 3

Я бы предложил, чтобы диск P: не был сопоставлен для учетной записи, с которой был запущен сервер sql.

Ответ 4

Вероятно, это проблема с разрешениями, но вам нужно попробовать выполнить следующие действия для устранения неполадок:

  • Поместите файл на локальный диск и посмотрите, работает ли работа (вам не обязательно нужен RDP-доступ, если вы можете сопоставить букву диска на своей локальной рабочей станции с каталогом на сервере базы данных).
  • Поместите файл в удаленный каталог, который не требует имени пользователя и пароля (позволяет всем читать) и использовать путь UNC (\ server\directory\file.csv)
  • Настроить задание SQL для запуска как собственное имя пользователя
  • Настройте задание SQL для работы как sa и добавьте команды net use и net use /delete до и после

Не забудьте отменить любые изменения (особенно работает как sa). Если ничего не работает, вы можете попытаться изменить массовую загрузку в запланированную задачу, запущенную на сервере базы данных или на другом сервере с установленной bcp.

Ответ 5

Я попытался предоставить доступ к папкам, но это не помогло. Мое решение состояло в том, чтобы сделать выделенные ниже варианты в красном, выбранном для входа в систему пользователя

This is what you see when you right click and select the username you have logged in for windows authentication mode.