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

Oracle 10:Używanie HEXTORAW do wypełniania danych blob

Aby zaktualizować BLOB dłuższe niż 16383 bajty można użyć czegoś takiego (każda linia ma parzystą liczbę cyfr szesnastkowych do 32766):

DECLARE
  buf BLOB; 
BEGIN
  dbms_lob.createtemporary(buf, FALSE);
  dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
  --...lots of hex data...
  dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
  UPDATE MyTable
     SET blobData = buf
   WHERE ID = 123;
END;

teraz ograniczeniem jest tylko wielkość instrukcji, która może być narzucona przez środowisko operacyjne (np. SQLPlus, Pro*C, VB, JDBC...). W przypadku bardzo dużych instrukcji PL/SQL może również zawieść z błędem „out of Diana nodes”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle hierarchiczna klauzula startowa kwerendy od join

  2. Obliczanie wieku od urodzin za pomocą wyzwalacza Oracle plsql i wstawianie wieku do tabeli

  3. Oracle wybierz z wielu tabel

  4. ORA-08177:nie można zserializować dostępu dla tej transakcji

  5. Automatyczne zapytanie JDBC okazało się bardzo powolne