当SCD组件类型历史中添加新记录时,OLE DB命令执行查询:
UPDATE [table] SET [ExpirationDate] = ? WHERE [ID] = ? AND [ExpirationDate] = '9999-12-31'
如何在发生更改时修复该查询以设置[ExpirationDate]=[ImportDate]。查询:
UPDATE [table] SET [ExpirationDate] = [ImportDate] WHERE [ID] = ? AND [ExpirationDate] = '9999-12-31'
生成错误:
OLE DB provider used by the OLE DB adapter cannot convert between
types DT_DBTIMESTAMP2 and DT_NUMERIC for Param_0
我不明白,因为[ExpirationDate]和[ImportDate]都有相同的类型(datetime2)。当历史发生变化时,如何实现此更新?
OLEDB命令中的错误消息指的是如何映射"?"。ID是数字吗?下一个选项卡上的param_0是否映射到日期字段?
您应该设置此命令的方式如下:
UPDATE [table] SET [ExpirationDate] = ? WHERE [ID] = ? AND [ExpirationDate] = '9999-12-31'
在下面的选项卡上,您将有两个参数,第一个映射到[ImportDate],第二个映射到ID字段。参数按顺序映射。