Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bekerja dengan objek BLOB di Oracle

Sejak UTL_ENCODE.BASE64_ENCODE fungsi bekerja pada RAW, itu akan bekerja dengan BLOB hingga 32767 byte di PL/SQL atau 4000 byte dalam SQL.

Jika gambar Anda lebih besar, Anda harus menulis fungsi Anda sendiri. Ini contohnya:

CREATE OR REPLACE FUNCTION base64_encode_blob (p BLOB) RETURN BLOB IS
   l_raw    RAW(24573);
   l_base64 RAW(32767);
   l_result BLOB;
   l_offset NUMBER := 1;
   l_amount NUMBER := 24573;
BEGIN
   DBMS_LOB.createtemporary(l_result, FALSE);
   DBMS_LOB.open(l_result, DBMS_LOB.lob_readwrite);
   LOOP
      DBMS_LOB.read(p, l_amount, l_offset, l_raw);
      l_offset := l_offset + l_amount;
      l_base64 := utl_encode.base64_encode(l_raw);
      DBMS_LOB.writeappend(l_result, utl_raw.length(l_base64), l_base64);
   END LOOP;
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      RETURN l_result;
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. Penggunaan kolom tipe BLOB di Oracle APEX

  2. Kueri prosedur tersimpan untuk nama dan jenis parameternya

  3. COALESCE() Fungsi di Oracle

  4. Mengonversi angka/angka dalam kata-kata untuk mata uang INR (Rupee India) di Oracle PL/SQL

  5. Masalah penyandian respons permintaan Oracle PL/SQL HTTP