BCP проблема с запросом SQL Server - PullRequest
0 голосов
/ 27 октября 2018

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

Поскольку я не очень хорошо знаком с bcp, это возможно из-за символов (, [,]? Нужно ли экранировать эти символы с помощью "?

declare @Result int

exec @Result = master.dbo.xp_cmdshell 
                     'bcp "SELECT ''H'', 1227, 1227, 1227, 1227, 
                                  [Check Num], GETDATE(), [Control Num], 
                                  [Clm Spec 1], [Clm Date], [Dlr Num], 
                                  UPPER([Dlr Name]), [Amt Claimed], 
                                  [Amt Appr], [Amt Paid], 
                                  Address1, Address2, City, State, Zip + ''|''     
                           FROM DBNAME.dbo.tblName" queryout "C:\MyTable.txt" -c -t"|" -S SERVERNAME -T'

1 Ответ

0 голосов
/ 28 октября 2018

В отличие от SQL, cmd.exe не справляется с командой, разделенной на несколько строк. Если вы перепишете команду в одну строку, вы получите результат.

(cmd.exe допускает ^ в качестве маркера продолжения строки, но кавычки разбивают его)

Но если у вас есть доступ к серверу, базовые операции bcp, вероятно, проще выполнить прямо из командной строки. А PowerShell с радостью позволяет вам писать и редактировать многострочные кавычки.

...