私は以下のbcpコマンドをストアドプロシージャから持っています。次のようにストアドプロシージャが作成されます。私はこれを実行しようとするとXMLを出力するときのT-SQL bcp構文の問題
SET @sqlCmd = 'bcp "' + @sqlStr + '" queryout "' + @offersFilename + '" -w -T';
EXEC xp_cmdshell @sqlCmd;
は、私は私の@sqlCmdにおけるいくつかの構文エラーがある意味、BCPの使用応答を取得します。
PRINT @ sqlCMDを使用すると、次のような出力が得られます。誰かが私が間違っているところに助言してもらえますか?ありがとう。
bcp "select custID as ""@id"",
(
SELECT familyDesc as ""familyDesc"",
upc as ""upc"",
itemDesc as ""itemDescription"",
offerCode as ""offerCode"",
offerDesc as ""offerDesc"",
validFrom as ""validFrom"",
validTo as ""validTo"",
cast(round(price,2) as decimal(19,2)) as ""price"",
imageURL as ""imageURL""
FROM tblCustomerOffers t2 where t1.custID=t2.custID
for XML PATH('Offer'), TYPE
)
from tblCustomerOffers t1
group by custID
FOR XML PATH('Customer'), ROOT ('Offers'), ELEMENTS"
queryout "D:\offers\customerOffers.xml" -w -T
どうもありがとう@Ericポーター、この回避策(グローバルTEMPおよびPowerShellスクリプトは)私は、少なくとも全体のプロセスを自動化するために、その間に実装することができる最高のソリューションです。 DOSプロンプトで上記のようにbcpコマンド全体を入力するとうまくいくので、奇妙ですが、ストアドプロシージャでラップして、すべての地獄が緩んでしまいます。どうもありがとう! – Ceasar