sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg undgå fejl i rå variabel længde for lange i SQL Developer?

En RAW er begrænset til 2000 bytes. Hvis dine data er længere end det, skal du gemme dem i en CLOB og konverter derefter CLOB til en BLOB hvilket desværre er lidt mere kompliceret end string_to_raw fungere. Noget som dette vil fungere, forudsat at du kan tildele hele strengen til en CLOB variabel, som skal fungere, så længe strengen er mindre end 32676 bytes lang. Hvis det er længere end det, skal du skrive til CLOB i stykker og konverter derefter til en 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. Tips til at gemme dine MariaDB-sikkerhedskopier i skyen

  2. Sådan registrerer du, om en værdi indeholder mindst et numerisk ciffer i MariaDB

  3. jQuery Valider fjernmetodebrug for at kontrollere, om brugernavnet allerede eksisterer

  4. CURRENT_DATE/CURDATE() fungerer ikke som standardværdi for DATE