Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Obtendo a hora correta da data do Oracle no Solr DataImportHandler


Aqui está o código completo para acompanhar a última resposta (para maior clareza).

Em seu arquivo data-config.xml, leia a data do banco de dados e converta para um carimbo de data/hora:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Coloque em uma entidade DataImportHandler, que se parece com isso:
<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>

Essa consulta retornará um oracle.sql.TIMESTAMP, mas não será mapeado diretamente para a data. Um transformador de script é, portanto, necessário. Assim, apresentamos script:startDateTransform . No mesmo data-config.xml, você pode inserir JavaScript assim:
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;
}

Aqui convertemos o timestamp em uma data, atualizamos o valor da coluna e retornamos a linha com as novas informações.

O campo STRT_DT :
<field column="STRT_DTTS" name="STRT_DT" />

agora deve conter a data correta.