Hier is de volledige code die bij het laatste antwoord hoort (voor extra duidelijkheid).
Lees in uw data-config.xml-bestand de datum uit de DB en cast naar een tijdstempel:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
Zet in een DataImportHandler-entiteit, die er als volgt uitziet:
<entity name="startDate" transformer="script:startDateTransform"
query="select cast(STRT_DT as timestamp) as STRT_DTTS from DATES" >
<field column="STRT_DTTS" name="STRT_DT" />
</entity>
Deze query retourneert een oracle.sql.TIMESTAMP, maar wordt niet rechtstreeks toegewezen aan de datum. Een scripttransformator is daarom vereist. Daarom introduceren we script:startDateTransform
. In dezelfde data-config.xml kunt u JavaScript als volgt invoegen:
function startDateTransform(row){
// Get the timestamp and convert it to a date
var dateVal = row.get("STRT_DTTS").dateValue();
// Put the correct date object into the original column
row.put("STRT_DTTS", dateVal);
return row;
}
Hier zetten we de tijdstempel om naar een datum, werken de kolomwaarde bij en retourneren de rij met de nieuwe informatie.
Het veld STRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
zou nu de juiste datum moeten bevatten.