sql >> Base de Datos >  >> RDS >> Oracle

Obtener la hora correcta de la fecha de Oracle en Solr DataImportHandler

Aquí está el código completo para acompañar la última respuesta (para mayor claridad).

En su archivo data-config.xml, lea la fecha de la base de datos y envíela a una marca de tiempo:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Póngalo en una entidad DataImportHandler, que se ve así:

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

Esta consulta devolverá oracle.sql.TIMESTAMP, pero no se asignará directamente a la fecha. Por lo tanto, se requiere un transformador de script. Así introducimos script:startDateTransform . En el mismo data-config.xml, puede insertar JavaScript así:

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

Aquí convertimos la marca de tiempo en una fecha, actualizamos el valor de la columna y devolvemos la fila con la nueva información.

El campo STRT_DT :

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

ahora debería contener la fecha correcta.