sql >> Database >  >> RDS >> Oracle

Hoe kan ik fouten met onbewerkte variabele lengte te lang in SQL Developer voorkomen?

Een RAW is beperkt tot 2000 bytes. Als uw gegevens langer zijn, moet u deze opslaan in een CLOB en converteer vervolgens de CLOB naar een BLOB wat helaas een beetje ingewikkelder is dan de string_to_raw functie. Zoiets als dit zal werken, ervan uitgaande dat je de hele string kunt toewijzen aan een CLOB variabele die zou moeten werken zolang de string minder dan 32676 bytes lang is. Als het langer is, moet je schrijven naar de CLOB in stukjes en converteer dan naar een 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. PostgreSQL implementeren op een Docker-container

  2. Hoe JSON-gegevens op te halen uit MySQL?

  3. MySQL omzeilen Kan tabelfout niet heropenen

  4. Hoe vervang ik een reguliere expressie in MySQL?