我一直在網上搜索的最後幾天,不幸找不到我正在尋找什麼。我有一個包含2列的SQL Server 2012表,其中一個是PurchaseOrder DataType varchar(10),另一個是具有XML數據類型的數據。目前,存儲過程運行幾個小時後會發生什麼情況,以檢查某個表的數值,然後以所需的XML格式創建PurchaseOrder。這已經由我將要發送數據的公司實現並驗證。我現在遇到的問題是我想創建一個SSIS包,查看此表並創建多個xml文件,其中數據字段的內容爲「不將內容放入一長行」,然後使用PurchaseOrder字段作爲文件名稱。我已經找到了各種解決方案使用腳本任務,因爲在SSIS中沒有原生的XML目標,但是掙扎並且對於SSIS來說是一個新手而沒有獲得任何快速的地方。任何人都可以提供任何幫助,指導,YouTube的鏈接,甚至有一部分的方式包裝。導出XML數據到多個文件,但保留結構
由於P
除了上述問題,我曾嘗試使用BCP命令去了解它,下面是以下代碼的偉大工程,只是希望在頂部1記錄
DECLARE @fileName VARCHAR(50)
DECLARE @sqlStr VARCHAR(1000)
DECLARE @sqlCmd VARCHAR(1000)
SET @fileName = 'C:\Temp\test.xml'
SET @sqlStr = 'select TOP 1 Data from DatabaseName.dbo.OutputXML'
SET @sqlCmd = 'bcp "' + @sqlStr + '" queryout ' + @fileName + '
-w -T -S Server\Instance'
EXEC xp_cmdshell @sqlCmd
什麼然後我做的是將其添加到遊標中,該遊標再次運行到某個點,它創建我的文件,使用purchaseorder作爲文件名並輸出相關信息,但它不再保存適當的xml格式,它返回到看起來像一個沒有原始格式的字符串,是因爲我將它嵌入到遊標中?以下是我正在使用的代碼
DECLARE @fileName VARCHAR(50)
DECLARE @sqlStr VARCHAR(1000)
DECLARE @sqlCmd VARCHAR(1000)
DECLARE xml_cursor CURSOR FOR
SELECT PurchaseOrder from DatabaseName.dbo.OutputXML
OPEN xml_cursor
FETCH NEXT FROM xml_cursor INTO @fileName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = 'C:\Temp\'[email protected]+'.xml'
SET @sqlStr = 'select Data from DatabaseName.dbo.OutputXML'
SET @sqlCmd = 'bcp "' + @sqlStr + '" queryout ' + @fileName + '
-w -T -S Server\Instance'
EXEC xp_cmdshell @sqlCmd
FETCH NEXT FROM xml_cursor into @fileName
END
CLOSE xml_cursor
DEALLOCATE xml_cursor
你用你的光標的唯一事情是文件名,則需要通過取得密鑰並將其添加到過濾你的輸出你的@sqlStr也是如此。否則,每個文件將包含所有記錄。請記住,BCP是一個命令行實用程序,不考慮您的光標 –