Oracle
 sql >> Base de données >  >> RDS >> Oracle

Obtenir l'heure correcte à partir de la date Oracle dans Solr DataImportHandler

Voici le code complet pour accompagner la dernière réponse (pour plus de clarté).

Dans votre fichier data-config.xml, lisez la date de la base de données et convertissez-la en un horodatage :

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Mettre dans une entité DataImportHandler, qui ressemble à ceci :

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

Cette requête renverra un oracle.sql.TIMESTAMP, mais elle ne sera pas directement mappée à ce jour. Un transformateur de script est donc nécessaire. Ainsi nous introduisons script:startDateTransform . Dans le même data-config.xml, vous pouvez insérer du JavaScript comme ceci :

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

Ici, nous convertissons l'horodatage en date, mettons à jour la valeur de la colonne et renvoyons la ligne avec les nouvelles informations.

Le champ STRT_DT :

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

doit maintenant contenir la date correcte.