Дополнительно
Невозможно выполнить массовую загрузку, поскольку файл не удалось открыть. Код ошибки операционной системы 3
Я'пытаюсь установить хранимую процедуру в качестве задания агента SQL Server Agent Job, и это дает мне следующую ошибку,
Cannot bulk load because the file "P:\file.csv" could not be opened. Код ошибки операционной системы 3 (не удалось получить текст этой ошибки. Причина: 15105). [SQLSTATE 42000] (Ошибка 4861)
Забавно, но хранимая процедура работает нормально, когда я выполняю ее вручную.
Диск P: является общим диском на Windows SQL Server из LINUX через Samba Share, и он был настроен путем выполнения следующей команды,
EXEC xp_cmdshell 'net use P: "\lnxusanfsd01\Data" Password /user:username /Persistent:Yes'
Любая помощь по этому вопросу будет высоко оценена
35
7
Я не знаю, решили ли вы эту проблему, но у меня была та же проблема, если экземпляр локальный, вы должны проверить разрешение на доступ к файлу, но если вы получаете доступ с вашего компьютера на сервер (удаленный доступ), вы должны указать путь на сервере, так что это означает включить файл в каталог сервера, это решило мою проблему.
пример:
Чтобы упростить задачу, я просто изменил каталог, из которого импортировал данные, на локальную папку на сервере.
У меня файл находился в общей папке, я просто скопировал свои файлы в "c:\TEMP\Reports" на своем сервере (обновил запрос на BULK INSERT из новой папки). Задание агента успешно выполнено :)
Наконец-то, после долгого времени, я получил возможность автоматической BULK Insert через задание агента.
С наилучшими пожеланиями.
Я решил эту проблему,
Если вы дадите вопрос совместимости данных изменить тип данных для этого столбца
Я бы предложил П: диск не подключен к учетной записи, что SQL сервер запущен как.
Используя подключение к SQL через проверку подлинности Windows: А "по протоколу Kerberos двойного прыжка" это происходит: один хоп это клиентское приложение подключается к SQL-серверу, а второй прыжок-это SQL Server подключение к удаленному " и\\NETWORK_MACHINE\" по. Такой "двойной прыжок" попадает под ограничения ограниченное Делегирование и вы в конечном итоге с доступом к общему ресурсу как "анонимный вход" и, следовательно, отказано в доступе.
Для решения проблемы необходимо разрешить делегирование для учетной записи службы SQL-сервера. См. здесь хороший пост, что объясняет его довольно хорошо
В SQL Server с использованием проверки подлинности SQL Вам нужно создать учетные данные для входа в SQL и использовать его для доступа к определенному сетевому ресурсу. См. здесь
Возможно, это проблема с разрешениями, но вам нужно обязательно попробовать эти шаги для устранения неполадок:
sa
и добавьте командыnet use
иnet use /delete
до и после них.Не забудьте отменить все изменения (особенно запуск от имени
sa
). Если ничего не помогает, вы можете попробовать изменить массовую загрузку на запланированное задание, выполняемое на сервере базы данных или на другом сервере, на котором установлен bcp.Я пробовал давать доступ к папкам, но это не помогло. Мое решение было сделать ниже выделены параметры в красном выбрано для вошедшего в систему пользователя