2012-10-18 80 views
1

有一個存儲過程,它具有XML作爲輸出並顯示SSMS中的xml輸出。我應該如何使用SSIS從此存儲過程生成一個XML文件到特定的位置。我找到了一個建議使用VB和腳本任務來完成這個任務的鏈接。可以在不使用腳本任務的情況下完成這項工作嗎?此外,我試圖按照此鏈接步驟:在執行SQL任務本身使用SSIS從存儲過程導出XML文件

How to export from SQL Server to XML

包失敗,並給出了錯誤[執行SQL任務]錯誤:執行「EXEC USP_PMAXML」失敗,出現以下錯誤的查詢: 「找不到存儲過程'EXEC USP_PMAXML'。」。可能的失敗原因:查詢問題,「ResultSet」屬性設置不正確,參數設置不正確或連接未正確建立。

感謝您的時間和幫助。

回答

3

答)您收到的錯誤表明它找不到存儲過程。您將要驗證

  1. 存儲過程存在
  2. 帳戶訪問存儲過程有它
  3. 存儲過程在默認模式存在執行權限,可能DBO,該帳戶。 {我見過在用戶模式下創建程序的問題}
  4. 您正在使用的連接管理器正在指向正確的服務器和目錄(數據庫)。

B)如果您想使用開箱即用的方法並避免編寫腳本,請刪除Execute SQL Task。下面我展示一個用於複製目的的執行SQL任務。它創建一個生成XML的存儲過程。

Control flow

  1. 添加一個數據流任務。
  2. 在數據流任務中,添加一個OLE DB Source。
  3. 配置您的OLE DB源使用的連接管理器,我們驗證了存儲過程從步驟1
  4. 假設有隻生成一個文件正確,添加一個派生列轉換出來的OLE DB源和內它的定義輸出文件名,我認爲是C:\ssisdata\so_xmlExtract.xml。我將進一步假設您將該列重命名爲FileName。您使用的確切值是「C:\ ssisdata \ so_xmlExtract.xml」請注意斜槓的翻倍,因爲我們必須跳過\字符以及用雙引號包裝。

  5. 此時,您已準備好使用「導出列轉換」。例如Export Varbinary(max) column with ssisUsing SSIS to extract a XML representation of table data to a file

dataflow

+0

感謝快速reply.I檢查所有的四個屬性爲A)1,存儲過程中存在2,帳戶可以訪問,我使用的是同一個帳戶我我正在訪問SSMS,它在那裏工作,當我解析它說的解析的查詢。 3.是的,它是在不同的模式下創建的。我放棄了它,並創建了一個新的dbo架構,但我得到了同樣的錯誤,這次我還引入了EXEc .dbo.USP_PMAXML 4.如後文中提到的,我引用了我使用ado.net和result set作爲none但除連接字符串指的是正確的連接。 – user1757018

+0

@ billinkc:我嘗試了第二個過程,但無法創建STEP 4.在派生列轉換中,我嘗試創建派生列並將其命名爲FIleName。還嘗試在表達式窗口中顯示「C:\ ssisdata \ so_xmlExtract.xml」,但當單擊「確定」時會出現錯誤 – user1757018

+0

我添加了圖片以及解決了您遇到的問題,並且您在派生列中輸入的值 – billinkc