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

Memasukkan Gambar Ke BLOB Oracle 10g

Anda tidak dapat mengakses direktori lokal dari pl/sql. Jika Anda menggunakan bfile, Anda akan mengatur direktori (membuat direktori) di server tempat Oracle menjalankan di mana Anda perlu meletakkan gambar Anda.

Jika Anda ingin menyisipkan beberapa gambar dari mesin lokal Anda, Anda memerlukan aplikasi sisi klien untuk melakukan ini. Anda dapat menulis sendiri, tetapi saya biasanya menggunakan Toad untuk ini. Di browser skema, klik ke tabel. Klik tab data, dan tekan tanda + untuk menambahkan baris. Klik dua kali kolom BLOB, dan wizard terbuka. Ikon paling kiri akan memuat gambar ke dalam gumpalan:

Pengembang SQL memiliki fitur serupa. Lihat tautan "Muat" di bawah ini:

Jika Anda perlu menarik gambar melalui kabel, Anda dapat melakukannya menggunakan pl/sql, tetapi tidak lurus ke depan. Pertama, Anda harus mengatur akses daftar ACL (untuk alasan keamanan) untuk memungkinkan pengguna menepi. Lihat artikel ini untuk mengetahui lebih lanjut tentang penyiapan ACL.

Dengan asumsi ACL selesai, Anda akan menarik gambar seperti ini:

declare
    l_url varchar2(4000) := 'http://www.oracleimg.com/us/assets/12_c_navbnr.jpg';
    l_http_request   UTL_HTTP.req;
    l_http_response  UTL_HTTP.resp;
    l_raw RAW(2000);
    l_blob BLOB;
begin
   -- Important: setup ACL access list first!

    DBMS_LOB.createtemporary(l_blob, FALSE);

    l_http_request  := UTL_HTTP.begin_request(l_url);
    l_http_response := UTL_HTTP.get_response(l_http_request);

  -- Copy the response into the BLOB.
  BEGIN
    LOOP
      UTL_HTTP.read_raw(l_http_response, l_raw, 2000);
      DBMS_LOB.writeappend (l_blob, UTL_RAW.length(l_raw), l_raw);
    END LOOP;
  EXCEPTION
    WHEN UTL_HTTP.end_of_body THEN
      UTL_HTTP.end_response(l_http_response);
  END;

  insert into my_pics (pic_id, pic) values (102, l_blob);
  commit;

  DBMS_LOB.freetemporary(l_blob); 
end;

Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa efek menempatkan komit setelah DML dalam prosedur?

  2. Oracle:Memperbarui kolom tabel menggunakan ROWNUM bersama dengan klausa ORDER BY

  3. Apa operator rangkaian string di Oracle?

  4. Memanggil PROSEDUR yang tersimpan di Toad

  5. Ada / tidak ada:'pilih 1' vs 'pilih bidang'