2

I am trying to load in a CSV file using loadData, two of my columns are date times. I don't want to have to put the date time into the csv file, but have the current system time used --> SYSDATA (using Oracle).

I tried a couple things detailed below which didn't work:

File:

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~

What I tried

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>

B

<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>
AfterWorkGuinness
  • 1,780
  • 4
  • 28
  • 47

1 Answers1

2

I was over-thinking things. I set the value of the data column in my CSV to CURRENT_TIMESTAMP, keep the column def in loadUpdateData as date and get rid of defaultValueComputed/valueDate. Worked great.

AfterWorkGuinness
  • 1,780
  • 4
  • 28
  • 47