Ниже приведен пример заявления BCP. Я не привык использовать BCP, поэтому ваша помощь и откровенность очень ценятся.
Я использую его также в файле формата.
Если я выполню из приглашения CMD, он отлично работает, но из SQL я получаю ошибку. Оператор BCP находится в одной строке, а агент SQL Server работает как локальная система. Сервер SQL и script находятся в одной системе.
Я запустил exec master..xp_fixeddrives С, 45589 Е, 423686
Я пробовал вывод на C и E с тем же результатом
EXEC xp_cmdshell 'bcp "Select FILENAME, POLICYNUMBER, INSURED_DRAWER_100, POLICY_INFORMATION, DOCUMENTTYPE, DOCUMENTDATE, POLICYYEAR FROM data.dbo.max" queryout "E:\Storage\Export\Data\max.idx" -fmax-c.fmt -SSERVERNAME -T
Вот файл формата rmax-c.fmt
10.0
7
1 SQLCHAR 0 255 "$#Y#$" 1 FILENAME
2 SQLCHAR 0 40 "" 2 POLICYNUMBER
3 SQLCHAR 0 40 "" 3 INSURED_DRAWER_100
4 SQLCHAR 0 40 "" 4 POLICY_INFORMATION
5 SQLCHAR 0 40 "" 5 DOCUMENTTYPE
6 SQLCHAR 0 40 "" 6 DOCUMENTDATE
7 SQLCHAR 0 8 "\r\n" 7 POLICYYEAR
Из-за формирования в этом сообщении последний столбец файла формата обрезается, но читает SQL_Latin1_General_CP1_CI_AS
для каждого столбца, другого документа, документированного.