sql >> データベース >  >> RDS >> Oracle

SolrDataImportHandlerでOracleの日付から正しい時刻を取得する

    これが最後の答えと一緒に行く完全なコードです(さらに明確にするため)。

    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" />
    

    正しい日付が含まれているはずです。



    1. 作成ユーザーの書き方は? MySQLプリペアドステートメントを使用

    2. データベース速度の最適化:行数の多いテーブルが少ないのか、それとも行数の少ないテーブルが多いのか?

    3. SSMSを使用してSQLServerエージェントジョブを作成する

    4. EloquentでgroupByを使用してグループあたりの行数を増やす