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

Làm cách nào để tránh lỗi độ dài biến thô quá dài trong SQL Developer?

A RAW được giới hạn ở 2000 byte. Nếu dữ liệu của bạn dài hơn, bạn sẽ cần lưu trữ dữ liệu đó trong CLOB và sau đó chuyển đổi CLOB tới một BLOB thật không may, phức tạp hơn một chút rằng string_to_raw hàm số. Một cái gì đó như thế này sẽ hoạt động giả sử bạn có thể gán toàn bộ chuỗi cho một CLOB biến sẽ hoạt động miễn là chuỗi có độ dài nhỏ hơn 32676 byte. Nếu dài hơn thế, bạn sẽ cần ghi vào CLOB thành từng phần và sau đó chuyển đổi thành BLOB .

declare
  l_blob        blob;
  l_clob        clob := rpad('{"foo": {"id": "1", "value": "2", "name": "bob"}}',3200,'*');
  l_amt         integer := dbms_lob.lobmaxsize;
  l_dest_offset integer := 1;
  l_src_offset  integer := 1;
  l_csid        integer := dbms_lob.default_csid;
  l_ctx         integer := dbms_lob.default_lang_ctx;
  l_warn        integer;
begin
  dbms_lob.createTemporary( l_blob, false );
  dbms_lob.convertToBlob( l_blob,
                          l_clob,
                          l_amt,
                          l_dest_offset,
                          l_src_offset,
                          l_csid,
                          l_ctx,
                          l_warn );
  update json_data
     set data = l_blob;
end;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn Oracle nếu hàng không tồn tại

  2. Oracle:Tính chênh lệch múi giờ trong HH:MM:SS giữa 2 ngày

  3. Sử dụng 'cột biểu thức chữ hoa chữ thường' trong mệnh đề where

  4. ORA-12505, TNS:người nghe hiện không biết về SID được cung cấp trong bộ mô tả kết nối

  5. Lỗi SQL:ORA-02291:ràng buộc toàn vẹn