sql >> Databáze >  >> RDS >> Oracle

Získání správného času z data Oracle v Solr DataImportHandler

Zde je celý kód k poslední odpovědi (pro větší přehlednost).

Ve vašem souboru data-config.xml načtěte datum z DB a přetypujte na časové razítko:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Vložte do entity DataImportHandler, která vypadá takto:

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

Tento dotaz vrátí oracle.sql.TIMESTAMP, ale nebude mapovat přímo k datu. Proto je vyžadován skriptový transformátor. Proto zavádíme script:startDateTransform . Do stejného data-config.xml můžete vložit JavaScript takto:

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

Zde převedeme časové razítko na datum, aktualizujeme hodnotu sloupce a vrátíme řádek s novými informacemi.

Pole STRT_DT :

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

by nyní měl obsahovat správné datum.



  1. Přidat vypočítaný sloupec do existující tabulky na serveru SQL Server

  2. Jak zkontrolovat databázi a v důsledku toho zkontrolovat přepínač?

  3. Docker Compose a Postgres:Název se nerozlišuje

  4. Zavolejte uloženou proceduru z sqlplus