Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abrufen der korrekten Uhrzeit aus dem Oracle-Datum in Solr DataImportHandler

Hier ist der vollständige Code für die letzte Antwort (für zusätzliche Klarheit).

Lesen Sie in Ihrer data-config.xml-Datei das Datum aus der DB und wandeln Sie es in einen Zeitstempel um:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

In eine DataImportHandler-Entität einfügen, die so aussieht:

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

Diese Abfrage gibt ein oracle.sql.TIMESTAMP zurück, aber es wird nicht direkt dem Datum zugeordnet. Daher ist ein Skripttransformator erforderlich. Daher führen wir script:startDateTransform ein . In derselben data-config.xml können Sie JavaScript wie folgt einfügen:

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 wandeln wir den Zeitstempel in ein Datum um, aktualisieren den Spaltenwert und geben die Zeile mit den neuen Informationen zurück.

Das Feld STRT_DT :

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

sollte nun das richtige Datum enthalten.