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

Oracle 10:Sử dụng HEXTORAW để điền dữ liệu blob

Để cập nhật BLOB dài hơn 16383 byte một cái gì đó như thế này có thể được sử dụng (mỗi dòng có số chữ số hex chẵn lên đến 32766):

DECLARE
  buf BLOB; 
BEGIN
  dbms_lob.createtemporary(buf, FALSE);
  dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
  --...lots of hex data...
  dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
  UPDATE MyTable
     SET blobData = buf
   WHERE ID = 123;
END;

bây giờ giới hạn chỉ là kích thước của câu lệnh, có thể bị áp đặt bởi môi trường hoạt động (ví dụ:SQLPlus, Pro * C, VB, JDBC ...). Đối với các câu lệnh rất lớn, PL / SQL cũng có thể không thành công với lỗi "ngoài các nút Diana".



  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ác phương pháp hay nhất:.NET:Làm thế nào để trả về PK với cơ sở dữ liệu oracle?

  2. biểu thức chính quy cho các từ dài dòng được phân tách bằng các từ dài khác nhau

  3. Làm thế nào để giải quyết lỗi Oracle ORA-01790?

  4. Không thể tham gia giao dịch

  5. vấn đề về hiệu suất:sự khác biệt giữa các lựa chọn. * so với chọn *