sql >> Databasteknik >  >> RDS >> Oracle

Få korrekt tid från Oracle-datum i Solr DataImportHandler

Här är hela koden för det sista svaret (för extra tydlighet).

I din data-config.xml-fil läser du datumet från DB och casta till en tidsstämpel:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Lägg in i en DataImportHandler-entitet som ser ut så här:

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

Den här frågan returnerar en oracle.sql.TIMESTAMP, men den mappas inte direkt till datumet. En skripttransformator krävs därför. Därför introducerar vi script:startDateTransform . I samma data-config.xml kan du infoga JavaScript så här:

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;
}

Här konverterar vi tidsstämpeln till ett datum, uppdaterar kolumnvärdet och returnerar raden med den nya informationen.

Fältet STRT_DT :

<field column="STRT_DTTS" name="STRT_DT" />

bör nu innehålla rätt datum.



  1. Problem med att byta .NET-projekt från ohanterat till hanterade ODP.NET-sammansättningar

  2. CONVERT() från datum/tid till strängexempel i SQL Server

  3. Hur man ställer in DB-koder för formulär

  4. Alla parametrar användes inte i SQL-satsen när python och mysql användes