преобразование не удалось при преобразовании даты и/или времени из символьной строки в пакетной фиксации мула

Я выполняю оператор слияния для вставки/обновления столбца типа данных datetime на сервере sql.

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>

Если я удаляю пакетную фиксацию, я не получаю никаких ошибок, и оператор слияния работает нормально, а даты обновляются/вставляются в БД. Я хочу использовать пакетную фиксацию, как я могу решить эту проблему?


person user94538    schedule 14.02.2017    source источник
comment
SQL-сервер выдает ошибку, потому что полезная нагрузка представляет собой список, а полезная нагрузка.дата имеет значение null внутри пакетной фиксации. Что я должен использовать вместо #[payload.date], учитывая, что полезная нагрузка представляет собой список?   -  person user94538    schedule 16.02.2017


Ответы (1)


массовый режим не поддерживается для выполнения операции ddl, поэтому нельзя использовать пакетную фиксацию

person user94538    schedule 15.02.2017