これが最後の答えと一緒に行く完全なコードです(さらに明確にするため)。
data-config.xmlファイルで、DBから日付を読み取り、タイムスタンプにキャストします。
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
次のようなDataImportHandlerエンティティに入れます:
<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>
このクエリはoracle.sql.TIMESTAMPを返しますが、日付に直接マップされません。したがって、スクリプトトランスフォーマーが必要です。したがって、script:startDateTransform
を紹介します。 。同じdata-config.xmlに、次のようにJavaScriptを挿入できます。
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;
}
ここでは、タイムスタンプを日付に変換し、列の値を更新して、新しい情報で行を返します。
フィールドSTRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
正しい日付が含まれているはずです。