Oracle
 sql >> Database >  >> RDS >> Oracle

Ottenere l'ora corretta dalla data Oracle in Solr DataImportHandler

Ecco il codice completo per accompagnare l'ultima risposta (per maggiore chiarezza).

Nel tuo file data-config.xml leggi la data dal DB ed esegui il cast su un timestamp:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Inserisci in un'entità DataImportHandler, che assomiglia a questa:

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

Questa query restituirà un oracle.sql.TIMESTAMP, ma non verrà mappata direttamente alla data. È quindi necessario un trasformatore di script. Quindi introduciamo script:startDateTransform . Nello stesso data-config.xml, puoi inserire JavaScript in questo modo:

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

Qui convertiamo il timestamp in una data, aggiorniamo il valore della colonna e restituiamo la riga con le nuove informazioni.

Il campo STRT_DT :

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

ora dovrebbe contenere la data corretta.