sql >> Databáze >  >> RDS >> Oracle

Oracle 10:Použití HEXTORAW k vyplnění dat blob

Chcete-li aktualizovat BLOB delší než 16383 bajtů lze použít něco takového (každý řádek má sudý počet hexadecimálních číslic až 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;

nyní je limitem pouze velikost příkazu, kterou může vynutit operační prostředí (např. SQLPlus, Pro*C, VB, JDBC...). U velmi velkých příkazů může PL/SQL také selhat s chybou „mimo uzly Diany“.



  1. Jak se mohu vyhnout příliš dlouhým chybám s nezpracovanými proměnnými délkami v SQL Developer?

  2. Optimalizace logiky MySql

  3. Načítání MySQL Workbench... -- nelze procházet DB

  4. Jak změnit názvy tabulek MySQL na serveru Linux tak, aby nerozlišovaly malá a velká písmena?