Sebuah RAW dibatasi hingga 2000 byte. Jika data Anda lebih panjang dari itu, Anda harus menyimpannya di CLOB lalu konversikan CLOB ke BLOB yang sayangnya, sedikit lebih rumit dari string_to_raw fungsi. Sesuatu seperti ini akan bekerja dengan asumsi Anda dapat menetapkan seluruh string ke CLOB variabel yang harus bekerja selama string kurang dari 32676 byte. Jika lebih panjang dari itu, Anda harus menulis ke CLOB berkeping-keping dan kemudian dikonversi menjadi 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;
/