使用loadData进行Liquibase SYSDATE

时间:2016-09-30 23:36:06

标签: oracle liquibase

我正在尝试使用loadData加载CSV文件,我的两个列是日期时间。我不想将日期时间放入csv文件中,但要使用当前系统时间 - > SYSDATA(使用Oracle)。

我尝试了下面详细介绍的一些不起作用的事情:

文件:

CONFIGURATION_ID~SERVICE_NAME~CATEGORY~CONFIGURATION_KEY~CONFIGURATION_VALUE~CREATE_TS~CREATED_BY~UPDATED_BY
3590~MobileCloudWallet~SYSTEM_PROPERTIES~VTS.Wallet.Provider.Type~XX,UGO,APPLE~26-SEP-16 09.52.05.708089000 AM~SYSTEM~
3591~MobileCloudWallet~SYSTEM_PROPERTIES~VTS.Wallet.Provider.Type.UGO.IneligibleCardList~4085869-4085869,4085868-4085868,4085860-4085860~26-SEP-16 09.52.05.730864000 AM~SYSTEM~
3592~MobileCloudWallet~SYSTEM_PROPERTIES~VTS.Credentials.Purpose.Type~Payment~26-SEP-16 09.52.05.740717000 AM~SYSTEM~

我尝试了什么

A

<loadData encoding="UTF-8"
            file="src/main/resources/data/configuration.tsv" quotchar=""
            separator="~" tableName="CONFIGURATION">
            <column name="CONFIGURATION_ID" type="NUMERIC" />
            <column name="SERVICE_NAME" type="STRING" />
            <column name="CATEGORY" type="STRING" />
            <column name="CONFIGURATION_KEY" type="STRING" />
            <column name="CONFIGURATION_VALUE" type="STRING" />
            <column name="CREATE_TS" type="DATETIME" valueDate="SYSDATE" />
            <column name="CREATED_BY" type="STRING" />
            <column name="UPDATED_TS" type="DATE" valueDate="SYSDATE"/>
            <column name="UPDATED_BY" type="STRING" />
        </loadData>

<property name="now" value="sysdate" dbms="oracle" />

<changeSet...>
<loadData encoding="UTF-8"
            file="src/main/resources/data/configuration.tsv" quotchar=""
            separator="~" tableName="CONFIGURATION">
            <column name="CONFIGURATION_ID" type="NUMERIC" />
            <column name="SERVICE_NAME" type="STRING" />
            <column name="CATEGORY" type="STRING" />
            <column name="CONFIGURATION_KEY" type="STRING" />
            <column name="CONFIGURATION_VALUE" type="STRING" />
            <column name="CREATE_TS" type="DATETIME" defaultValueComputed="${now}" />
            <column name="CREATED_BY" type="STRING" />
            <column name="UPDATED_TS" type="DATE" defaultValueComputed="${now}"/>
            <column name="UPDATED_BY" type="STRING" />
        </loadData>
</changeset>

1 个答案:

答案 0 :(得分:0)

我过度思考的事情。我将CSV中数据列的值设置为CURRENT_TIMESTAMP,将loadUpdateData中的列def保留为日期,并删除defaultValueComputed / valueDate。工作得很好。