sql >> Database >  >> RDS >> Oracle

De juiste tijd krijgen van de Oracle-datum in Solr DataImportHandler

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.



  1. De voortgang van een query binden aan een progressEigenschap van een ProgressBar om de gebruiker te informeren over de download- en uploadtijd in javaFX?

  2. Vergelijking van SQL-tekenreeksen, groter dan en kleiner dan operators

  3. script(while-loop) stopt en heeft geen output wanneer meerdere kolommen zijn geselecteerd

  4. MySQL hoofdletterongevoelig zoeken op varbinary veld?