Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Uzyskiwanie poprawnego czasu od daty Oracle w Solr DataImportHandler

Oto pełny kod do ostatniej odpowiedzi (dla większej przejrzystości).

W pliku data-config.xml odczytaj datę z bazy danych i rzutuj na znacznik czasu:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Umieść w encji DataImportHandler, która wygląda tak:

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

To zapytanie zwróci oracle.sql.TIMESTAMP, ale nie będzie mapowane bezpośrednio na datę. Dlatego wymagany jest transformator skryptowy. Dlatego przedstawiamy script:startDateTransform . W tym samym data-config.xml możesz wstawić JavaScript w ten sposób:

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

Tutaj konwertujemy znacznik czasu na datę, aktualizujemy wartość kolumny i zwracamy wiersz z nowymi informacjami.

Pole STRT_DT :

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

powinien teraz zawierać poprawną datę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimportować plik XML w Oracle SQL Developer?

  2. Jak uzyskać nazwę dnia tygodnia z daty?

  3. Pobieranie próbek z Oracle, Potrzebujesz dokładnej liczby wyników (klauzula przykładowa)

  4. Dlaczego ora_rowscn zmienia się bez aktualizacji tabeli?

  5. Grupowanie wierszy z uwzględnieniem różnicy między wierszami