SSIS从字符串转换为GUID

时间:2016-07-13 14:54:30

标签: sql-server ssis

我有一个SomeId类型的包变量string(因为SSIS包变量窗格中没有用于将其设置为GUID的选项)。

在“派生列”步骤中,我将变量的表达式设置为(DT_GUID)@[User::SomeId],将数据类型自动设置为unique identifier [DT_GUID]

下一步是'OLE Db Destination'

我在上述两个步骤之间“启用了数据查看器”,我可以看到SomeId列中填充了新的guid。但是,只要它尝试将其导入数据库表,就会失败并显示以下错误。

  

[NameOfOleDbDest1 [181]]错误:SSIS错误代码DTS_E_OLEDBERROR。一个   发生OLE DB错误。错误代码:0x80004005。 OLE DB记录是   可用。来源:“Microsoft SQL Server Native Client 11.0”   Hresult:0x80004005描述:“强制转换的字符值无效   说明书中,”

我认为它与我如何将变量转换为DT_GUID有关,但是人们在stackoverlfow上提到的其他方式*会在表达式上引发红色突出显示错误。

*以下是我尝试将字符串转换为guid的其他方法,但引发了错误:

(DT_GUID)[User::SomeId]
(DT_GUID)("{" + [User::SomeId] + "}") 

只有当我尝试(DT_GUID)@[User::SomeId]时才会成功。但是很明显,当我执行包时会出现上述错误。

0 个答案:

没有答案