在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)。历史更改发生时如何实现此更新?
答案 0 :(得分:0)
OLEDB cmd中的错误消息是指“?”被映射。 ID是数字,是映射到日期字段的下一个选项卡上的param_0吗?
您应该设置此命令的方式如下:
UPDATE [table] SET [ExpirationDate] = ? WHERE [ID] = ? AND [ExpirationDate] = '9999-12-31'
在下面的选项卡上,您将有两个参数,第一个映射到[ImportDate],第二个映射到ID字段。参数按顺序排列。