sql >> Databasteknik >  >> RDS >> Oracle

Oracle 10:Använder HEXTORAW för att fylla i blobdata

För att uppdatera en BLOB längre än 16383 byte kan något liknande detta användas (varje rad har ett jämnt antal hexadecimala siffror upp till 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 är gränsen bara storleken på satsen, som kan komma att införas av operativsystemet (t.ex. SQLPlus, Pro*C, VB, JDBC...). För mycket stora påståenden kan PL/SQL också misslyckas med felet "out of Diana nodes".



  1. BESTÄLL EFTER DATUM som visar NULLS först sedan senaste datum

  2. Hur felsöker jag prestandaproblem med en Oracle SQL-sats

  3. Hur konverterar man MySQL datetime till NSDate?

  4. Hur man använder SQL-markörer för speciella ändamål