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

Truy xuất XMLType tiên tri được lưu trữ dưới dạng XML nhị phân từ tập kết quả trong Java

Đã tìm thấy bắt và nó không liên quan đến mã.

NullSafeGet thích hợp trong Kiểu người dùng Hibernate, như được lưu ý trong câu trả lời được tham chiếu là:

public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session) throws HibernateException, SQLException {

    if (logger.isTraceEnabled()) {
        logger.trace("  nullSafeSet: " + value + ", ps: " + st + ", index: " + index);
    }
    try {
        XMLType xmlType = null;
        if (value != null) {
            xmlType = XMLType.createXML(getOracleConnection(st.getConnection()), (String)value);
        }
        st.setObject(index, xmlType);
    } catch (Exception e) {
        throw new SQLException("Could not convert String to XML for storage: " + (String)value);
    }
}

VẤN ĐỀ: khi sử dụng cột XML SECUREFILE BINARY (không phải CLOB), bạn phải sử dụng bản phân phối mới nhất (11.2.0.2+) của xdb * .jar, trong trường hợp này là xdb6.jar (~ 257kb). Xdb * .jar trước đó (~ 136kb cho 10.x) sẽ vẫn hoạt động mà không đưa ra bất kỳ ngoại lệ nào ngay cả khi giải mã sai BINARY XML.

TL; DR : Tải xuống xdb6.jar (~ 257kb) từ Trang trình điều khiển JDBC của Oracle 11gR2 (11.2.0.3) . Các lọ xdb cũ hơn bị lỗi một cách âm thầm và sẽ khiến bạn buồn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Java với Liên kết DB không đóng kết nối Liên kết Db

  2. cách tạo bảng động trong oracle với tên cột động và kiểu dữ liệu động mà không có bất kỳ dạng xem nào hoặc bất kỳ loại bảng nào khác

  3. Hibernate's saveOrUpdate bỏ qua thuộc tính cột not-null

  4. Chèn / cập nhật Oracle Trigger

  5. lỗi phân giải tên hàm oracle pl / sql