2017-05-30 99 views
1

我在ssis包的派生列表達式中編寫了下面的代碼。派生列表達式驗證錯誤

的輸入值,因爲我從源接收: -

Q:\SOURCE\RV_T\PCL_RVT\RVT_export_all_2011-02-14_08.38.00_Emerald.xlsx 

我想: - RVT_export_all_2011-02-14_08.38.00_Emerald.xlsx

Substring(@[User::V_FilePath],LEN(@[User::V_FilePath]) - Charindex("\",Reverse(@[User::V_FilePath]))+2,LEN(@[User::V_FilePath])) 

其運行良好,在SSMS但在SSIS

得到下述錯誤

DFT時的錯誤 - 加載數據[Derived Column [8]]:試圖解析 表達式「Substring(@ [Use Charindex(「\」,Reverse(@ [User :: V_FilePath]))+ 2,LEN(@ [User :: V_FilePath]))「 失敗。令牌「」」行號‘1’,字符數‘68’是 無法識別的表達不能被解析,因爲它包含在所指定的位置 無效元素

錯誤在DFT - 。加載數據[衍生柱[8]]:無法解析 表述 「SUBSTRING(@ [用戶:: V_FilePath],LEN(@ [用戶:: V_FilePath]) - CHARINDEX(」 \」,反向(@ [用戶:: V_FilePath]) )+ 2,LEN(@ [User :: V_FilePath]))「。 表達式無效,或者存在內存不足錯誤。

DFT的錯誤 - 加載數據[派生列[8 ]]:表達式 「Substring(@ [User :: V_FilePath],LEN(@ [User :: V_FilePath]) - 「派生列 輸出] .columns [filenaemfrompat(0)] Charindex(」\「,Reverse(@ [User :: V_FilePath]))+ 2,LEN(@ [User :: V_FilePath])))」 「 ]「無效。

錯誤在DFT - 負載數據[派生列[8]]:無法對 「派生Column.Outputs [派生列 輸出] .Columns [filenaemfrompat]」 設置屬性 「表達」。


請建議。 在此先感謝...

回答

1

最後大量的測試之後,我能夠得到我想要的東西。

這裏是我用

RIGHT(@[User::V_FilePath],FINDSTRING(REVERSE(@[User::V_FilePath]),"\\",1) - 1) 
代碼