Như tôi đã đề cập trong câu hỏi khác của bạn :theo kinh nghiệm của tôi getClob () và setClob () không hoạt động bình thường.
Sử dụng setCharacterStream()
thay vào đó:
StringReader clob = new StringReader("");
pStmt = conn.prepareStatement("update activity set REFERENCE = ? WHERE ID = ?");
pStmt.setCharacterStream(1, clob, 0);
pStmt.setLong(2, 1);
pStmt.executeUpdate();
Bằng cách đó, bạn cũng có thể xóa CHỌN không cần thiết trước khi cập nhật, điều này cũng sẽ cải thiện hiệu suất.
Một tùy chọn khác là chỉ cần đặt cột đó thành NULL
Chỉnh sửa:
Với các trình điều khiển mới hơn (11.x), bạn cũng có thể muốn thử sử dụng setString()
và getString()
trên cột CLOB.
Việc khóa hàng chỉ nên cần thiết khi bạn sử dụng công cụ định vị LOB mà bạn định giữ lại trong một giao dịch kéo dài nhiều hơn một câu lệnh (ít nhất đó là hiểu biết của tôi về tài liệu tham khảo được liên kết đến sách hướng dẫn).