Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nhận thời gian chính xác từ ngày Oracle trong Solr DataImportHandler

Đây là toàn bộ mã đi kèm với câu trả lời cuối cùng (để rõ hơn).

Trong tệp data-config.xml của bạn, hãy đọc ngày tháng từ DB và truyền sang dấu thời gian:

select cast(STRT_DT as timestamp) as STRT_DTTS from DATES

Đặt vào một thực thể DataImportHandler, trông giống như sau:

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

Truy vấn này sẽ trả về oracle.sql.TIMESTAMP, nhưng nó sẽ không ánh xạ trực tiếp đến ngày. Do đó, cần phải có một biến áp kịch bản. Do đó, chúng tôi giới thiệu script:startDateTransform . Trong cùng data-config.xml, bạn có thể chèn JavaScript như sau:

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

Ở đây, chúng tôi chuyển đổi dấu thời gian thành ngày tháng, cập nhật giá trị cột và trả về hàng với thông tin mới.

Trường STRT_DT :

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

bây giờ sẽ chứa ngày chính xác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp kết hợp bên ngoài kiểu cũ Oracle - Tại sao lại định vị dấu (+) ở bên phải của dấu bằng trong phép nối bên ngoài bên trái?

  2. Số Dapper Oracle (10,0) được trả về dưới dạng lỗi Bộ phân tích cú pháp thập phân

  3. Lỗi khi thêm chế độ chờ

  4. Python 3.3 - Kết nối với cơ sở dữ liệu Oracle

  5. Truy vấn SQL Chọn xếp hạng đầu tiên 1 hàng Từ nhiều cấp bậc / Nhóm