0

我正在执行合并语句以在 sql server 中插入/更新日期时间数据类型的列。

payload.date 看起来像 2014-02-03 00:00:00.000

批处理失败并出现错误“从字符串转换日期和/或时间时转换失败”

     <batch:step name="step_1">
     <batch:commit  doc:name="Batch Commit" size="100"> 
            <db:execute-ddl config-ref="config"  doc:name="merge" >
                <db:dynamic-query><![CDATA[
                BEGIN  
                MERGE tablename AS Target 
                USING (SELECT '#[payload.key]')  AS Source (ID) 
                ON (Destination.Id=Source.ID) 
                WHEN MATCHED THEN UPDATE SET 
                datefield = '#[payload.date]' 
                WHEN NOT MATCHED THEN
               INSERT (datefield) values ('#[payload.date]');

                END]]></db:dynamic-query>
                            </db:execute-ddl>
            </batch:commit> 
    </batch:step>

如果我删除批量提交,我不会收到任何错误并且合并语句工作正常并且日期被更新/插入到数据库中。我想使用批量提交,我该如何解决这个问题?

4

1 回答 1

0

执行 ddl 操作不支持批量模式,因此无法使用批量提交

于 2017-02-15T22:12:23.693 回答