我試圖在導入每月數據集之前驗證某些列標題。我已經設置了一個執行SQL任務,它應該檢索上個月表格的列標題,並將其作爲單個字符串存儲在Header_Row中,其中字段名稱用逗號分隔。查詢運行就好在SQL Server中,但在SSIS中運行時,它拋出以下錯誤:無法在SSIS中將列名稱變爲變量執行SQL任務
"The type of the value (Empty) being assigned to variable 'User:Header_Row' differs from the current variable type (String)."
1),這是否意味着我沒有得到任何東西從我的查詢回來?
2)是否有另一種方法我應該在SSIS中使用以獲得我正在查詢的結果?
3)在我的查詢中使用變量引用作爲字符串的部分有問題嗎?我認爲答案是肯定的,但想要確認,因爲我的變量在更改後仍然是空的。
原始查詢:
SELECT DISTINCT
STUFF((
SELECT
',' + COLUMN_NAME
FROM
db_Analytics.INFORMATION_SCHEMA.COLUMNS aa
WHERE
TABLE_NAME = 'dt_table_?'
ORDER BY
aa.ORDINAL_POSITION
FOR
XML PATH('')
), 1, 1, '') AS Fields
FROM
db_Analytics.INFORMATION_SCHEMA.COLUMNS a;
編輯:改變變量覆蓋完整的表名之後,我有一個新的錯誤說:「值類型(__ComObject)只能轉換爲變量鍵入Object「。
最終查詢:
SELECT DISTINCT
CAST(STUFF((
SELECT
',' + COLUMN_NAME
FROM
db_Analytics.INFORMATION_SCHEMA.COLUMNS aa
WHERE
TABLE_NAME = ?
ORDER BY
aa.ORDINAL_POSITION
FOR
XML PATH('')
), 1, 1, '') As varchar(8000)) AS Fields
FROM
db_Analytics.INFORMATION_SCHEMA.COLUMNS a;
我認爲你是對的,它是* a *問題,但不是唯一的問題。當我提到你所做的改變時,我仍然得到錯誤,但是用* DBNull *代替* Empty *。 – grichmer
您可能會遇到以下問題:a)將變量分配給查詢參數和/或b)將查詢結果分配給輸出變量。但是您需要添加這些作業的屏幕截圖,以便我們能夠提供幫助。 –
已添加到帖子。結果集被設置爲單行結果集。 – grichmer