Ошибка BCP "Невозможно открыть файл формата BCP" - PullRequest
0 голосов
/ 03 октября 2019

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

Я использую xp_cmdshell в SSMS 2014

Я использую этот код:

BCP [UGM31EdwDemo].dbo.vwCCLF1_Output   format nul -c -f C:\CCLF1Demo.fmt -t, -T

Вот результат, который я получаю:

SQLState = S1000, NativeError = 0

Ошибка = [Microsoft] [Драйвер ODBC 13 для SQL Server] Невозможно открыть файл формата BCP

Любая помощь приветствуется.

1 Ответ

1 голос
/ 04 октября 2019

Скорее всего (потому что есть несколько вещей, которые могут быть неправильными), это потому, что учетная запись службы SQL Server не может записать корневую папку C: \. Попробуйте использовать другой путь / общий сетевой ресурс.

При использовании XP_CMDSHELL важно отметить, что вы больше не «пользователь», выполняющий переданную команду BCP. Когда вы передаете командную строку BCP в XP_CMDSHELL, в базовой ОС запускается новый сеанс / поток (вне обработки SQL Server). В этом новом сеансе используется аутентификация учетной записи, под которой работает SQL Server.

Именно этой другой учетной записи необходим доступ для записи в местоположение, в которое вы помещаете файл формата.

ДалееЕсли ваш SQL Server является сетевым SQL Server (а не SQL Server, запущенным на вашем рабочем столе), скорее всего, разрешения на запись в C: \ были заблокированы. Даже настольный компьютер может быть настроен ИТ-отделом для запрета записи в корневую папку C: \.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...