sql >> Database >  >> RDS >> Oracle

Oracle 10:HEXTORAW gebruiken om blobgegevens in te vullen

Een BLOB bijwerken langer dan 16383 bytes kan zoiets als dit worden gebruikt (elke regel heeft een even aantal hexadecimale cijfers tot 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;

nu is de limiet alleen de grootte van de instructie, die kan worden opgelegd door de besturingsomgeving (bijv. SQLPlus, Pro*C, VB, JDBC...). Voor zeer grote instructies kan PL/SQL ook mislukken met de fout "out of Diana nodes".



  1. Een trigger maken met een case-statement

  2. Hoe kan ik tijdelijk een externe-sleutelbeperking in MySQL uitschakelen?

  3. R12.2 Online patchcyclus Samenvatting

  4. Een Oracle Stored Proc uitvoeren als een andere gebruiker