2016-07-14 80 views
0

我是SSIS和SQL Server的新成員。我在網上做了很多閱讀,看了一本書或2本購買。語法錯誤:連接 - 派生列 - 2列+常量字符串

在這個過程中,我試圖用一個常量字符串加上一些破折號和兩列來完成一個新列。 但我沒有接近它。我可以得到2列沒有破折號和沒有文字,但沒有達到目標。 我已閱讀TechNet和Microsoft SSIS頁面以及在這裏搜索/閱讀,但仍然在掙扎。 有人可以幫我的語法?感謝您的幫助。

期望的目標是一樣的東西:

結果:DtMMP-202-PA-A97-1

環境:

新列會像以下(不正確的語法): MMID列是一個整數 PymtAuth列是nvarchar100

"DtMMP-" + [MMID] + "-PA-" + [PymtAuth] 

所需的結果:DtMMP-202-PA-A97-1

即使我刪除前端字符串,並結合2列我不成功。

[MMID] + "-PA-" + [PymtAuth] 

我甚至得到了獨立,並試圖2的整數字段...

[MMID] + '-' + [RegID] 

如果我離開了「 - 」它似乎接受,但需要虛線。

目標是:

"DtMMP-" + [MMID] + "-PA-" + [PymtAuth] 

結果:DtMMP-202-PA-A97-1

再次感謝您。


「DtMMP-」 + [MMID] + 「-PA-」 + [PymtAuth] 創建誤差在從MM庫[派生列[391]創建機會

錯誤:數據類型「DT_WSTR」和「DT_I4」對二元運算符「+」不兼容。操作數類型不能隱式轉換爲操作的兼容類型。爲了執行這個操作,一個或兩個操作數需要用一個轉換操作符顯式轉換。

從MM庫[派生列[391]]創建機會時發生錯誤:嘗試設置二進制操作「」DtMMP-「+ MMID」的結果類型失敗,錯誤代碼爲0xC0047080。

從MM庫[派生列[391]]創建機會時發生錯誤:計算表達式「」DtMMP-「+ [MMID] +」-PA-「+ [PymtAuth]」失敗,錯誤代碼爲0xC0047084。該表達式可能有錯誤,例如除以零,在解析時無法檢測到,或者可能存在內存不足錯誤。 「Derived Column.Outputs [Derived Column [Derived Column] [Derived Column [391]]」中的表達式「」DtMMP-「+ [MMID] +」-PA-「+ [PymtAuth]」創建機會時的錯誤輸出] .Columns [派生列2]「無效。

從MM庫[派生列[391]]創建機會時發生錯誤:無法在「派生Column.Outputs [派生列輸出] .Columns [派生列2]」上設置屬性「表達式」。


附加信息:

從HRESULT異常:0xC0204006(Microsoft.SqlServer.DTSPipelineWrap)

+1

做你得到任何錯誤?如果是這樣,則需要在與數字 – FLICKER

+0

結合時將[MMID]轉換爲字符,請提及您的數據庫引擎是什麼。 sq-server是MicrosoftSQL Server並且不同於mysql – FLICKER

+0

閃爍感謝您的回覆...使用Microsoft SQL Server 2014和是時使用 「DtMMP-」+ [MMID] +「-PA-」+ [PymtAuth] 我得到的錯誤如下,原則上我明白是混合數據類型,但我不清楚如何克服這個問題。 如果演員是我的答案,那麼我會去做更多關於演員的研究 – DJJ

回答

0

試試這個

"DtMMP-" + (DT_WSTR,4)MMID + "-PA-" + PymtAuth 

你必須轉換到MMID DT_WSTR

+0

2件事。第一次 - 這個伎倆!第二謝謝你對它的外觀應該如此具體。完整的語法。 – DJJ

+0

我還得到了一些額外的指導,把整個事情放在一個字符串中 - 你有什麼想法? (DT_STR,50,1252)(「DtMMP-」+(DT_WSTR,50)MMID +「 - PA-」+ [PymtAuth]) – DJJ

+0

大多數...謝謝! – DJJ