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;
/