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

Få korrekt tid fra Oracle-datoen i Solr DataImportHandler

Her er den fulde kode, der skal følge med det sidste svar (for ekstra klarhed).

Læs datoen fra DB'en i din data-config.xml-fil og cast til et tidsstempel:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Sæt ind i en DataImportHandler-entitet, der ser sådan ud:

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

Denne forespørgsel returnerer en oracle.sql.TIMESTAMP, men den vil ikke kortlægges direkte til dato. En script transformer er derfor påkrævet. Derfor introducerer vi script:startDateTransform . I den samme data-config.xml kan du indsætte JavaScript sådan:

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

Her konverterer vi tidsstemplet til en dato, opdaterer kolonneværdien og returnerer rækken med de nye oplysninger.

Feltet STRT_DT :

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

skal nu indeholde den korrekte dato.



  1. Doctrine2 - Multiple insert i ét skud

  2. Kan ikke gendanne en MYSQL-sikkerhedskopi til en ny database

  3. to ord og tomme mellemrum fungerer ikke i MYSQL-forespørgsel ved hjælp af LIKE

  4. søg data fra html-input i mysql