首頁 > 資料庫 > mysql教程 > 為什麼我的 SSIS 套件無法獲取臨時表的元數據,如何使用'WITH RESULT SETS”修復它?

為什麼我的 SSIS 套件無法獲取臨時表的元數據,如何使用'WITH RESULT SETS”修復它?

Mary-Kate Olsen
發布: 2024-12-27 14:23:21
原創
635 人瀏覽過

Why Does My SSIS Package Fail to Acquire Metadata for a Temporary Table, and How Can I Fix It Using `WITH RESULT SETS`?

SSIS 套件停止取得臨時表的元資料

在SSIS 套件中,多個串流建立全域臨時表作為資料的暫存區域。然而,一個流在嘗試為其臨時表獲取元資料時遇到間歇性故障。錯誤訊息顯示:

1

Unspecified error. The metadata could not be determined because statement 'select * from '##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1'' uses a temp table.

登入後複製

臨時表的建立運算式為:

1

CREATE TABLE " + @[User::TmpMcsConfigurationDeviceHistory]  + " ([RecId] [bigint] NULL,[DataAreaID] [nvarchar](4) COLLATE database_default NULL,[Asset] [bigint] NULL,[Code] [nvarchar](255) COLLATE database_default NULL,[Configuration] [bigint],[StartdateTime] [datetime] NULL,[EndDateTime] [datetime] NULL)

登入後複製

求值,此表達式變為:

1

CREATE TABLE ##TmpMcsConfigurationDeviceHistory764E56F088DC475C9CC747CC82B9E388 ([RecId] [bigint] NULL,[DataAreaID] [nvarchar](4) COLLATE database_default NULL,[Asset] [bigint] NULL,[Code] [nvarchar](255) COLLATE database_default NULL,[Configuration] [bigint],[StartdateTime] [datetime] NULL,[EndDateTime] [datetime] NULL)

登入後複製

要解決此問題,請考慮使用WITH RESULT SETS明確定義臨時表的元資料。這允許 SSIS 繞過 sp_describe_first_result_set 步驟並使用提供的元資料。

實作

對於預存程序,請使用以下語法:

1

2

3

4

5

6

7

8

9

EXEC ('dbo.MyStoredProcedure')

WITH RESULT SETS

  (

    (

        MyIntegerColumn INT NOT NULL,

        MyTextColumn VARCHAR(50) NULL,

        MyOtherColumn BIT NULL

    )

  )

登入後複製

對於簡單的SQL 查詢,請使用以下語法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

EXEC ('

CREATE TABLE #a

  (

    MyIntegerColumn INT NOT NULL,

    MyTextColumn VARCHAR(50) NULL,

    MyOtherColumn BIT NULL

  )

INSERT INTO #a

  (

    MyIntegerColumn,

    MyTextColumn,

    MyOtherColumn

  )

SELECT

    1 AS MyIntegerColumn,

    ''x'' AS MyTextColumn,

    0 AS MyOtherColumn

 

SELECT MyIntegerColumn, MyTextColumn, MyOtherColumn

FROM #a')

 

WITH RESULT SETS

    (

        (

            MyIntegerColumn INT NOT NULL

           ,MyTextColumn VARCHAR(50) NULL

           ,MyOtherColumn BIT NULL

        )

    )

登入後複製

以上是為什麼我的 SSIS 套件無法獲取臨時表的元數據,如何使用'WITH RESULT SETS”修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板