Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak mogę uniknąć zbyt długich błędów surowej zmiennej długości w programie SQL Developer?

RAW jest ograniczona do 2000 bajtów. Jeśli Twoje dane są dłuższe, musisz je przechowywać w CLOB a następnie przekonwertuj CLOB do BLOB co jest niestety nieco bardziej skomplikowane niż string_to_raw funkcjonować. Coś takiego będzie działać przy założeniu, że możesz przypisać cały ciąg do CLOB zmienna, która powinna działać tak długo, jak długość łańcucha jest mniejsza niż 32676 bajtów. Jeśli jest dłuższy, musisz napisać do CLOB w kawałkach, a następnie przekonwertuj na 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. Jak zamawiać według daty w PostgreSQL lub Oracle

  2. dialekt hibernacji dla wyroczni 12c

  3. Czy odwołania cykliczne są dopuszczalne w bazie danych?

  4. Sprawdź, czy dwa wybory są równoważne

  5. Co oznacza symbol SQL Select || oznaczać?