Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога да избегна твърде дълги грешки в необработената променлива дължина в SQL Developer?

A RAW е ограничен до 2000 байта. Ако данните ви са по-дълги от това, ще трябва да ги съхранявате в CLOB и след това конвертирайте CLOB към BLOB което, за съжаление, е малко по-сложно от string_to_raw функция. Нещо подобно ще работи, ако приемем, че можете да присвоите целия низ към CLOB променлива, която трябва да работи, докато низът е по-малък от 32676 байта. Ако е по-дълго от това, ще трябва да пишете в CLOB на парчета и след това конвертирайте в 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. Изявление FORALL с клауза INDICES-OF Bound в базата данни на Oracle

  2. Разлика между LockModeType Jpa

  3. грешка:ORA-65096:невалидно име на общ потребител или роля в oracle

  4. Защо получавам тази SQLSyntaxErrorException:ORA-00933:SQL командата не е приключила правилно, когато се опитам да изпълня тази JDBC заявка?

  5. Какво да направите, ако получите неправилна порядкова грешка при отметка, когато използвате SQL Server с нашия Oracle ODBC драйвер