Oracle
 sql >> база данни >  >> RDS >> Oracle

Вмъкване на изображение в BLOB Oracle 10g

Не можете да получите достъп до локална директория от pl/sql. Ако използвате bfile, ще настроите директория (създайте директория) на сървъра, където работи Oracle, където ще трябва да поставите вашите изображения.

Ако искате да вмъкнете шепа изображения от вашата локална машина, ще ви трябва клиентско приложение, за да направите това. Можете да напишете своя собствена, но аз обикновено използвам Toad за това. В браузъра на схемата щракнете върху таблицата. Щракнете върху раздела с данни и натиснете знак +, за да добавите ред. Щракнете двукратно върху колоната BLOB и се отваря съветник. Крайната лява икона ще зареди изображение в петното:

SQL Developer има подобна функция. Вижте връзката „Зареждане“ по-долу:

Ако трябва да издърпате изображения по проводника, можете да го направите с помощта на pl/sql, но не е направо. Първо, ще трябва да настроите достъп до списъка с ACL (от съображения за сигурност), за да позволите на потребителя да прехвърли кабела. Вижте тази статия за повече информация относно настройката на ACL.

Ако приемем, че ACL е завършен, ще изтеглите изображението по следния начин:

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;

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да замените буквата с ударение в колона varchar2 в oracle

  2. Как да изброя всички таблици в схема в Oracle SQL?

  3. Създайте електронна таблица на Excel от база данни на Oracle

  4. Разлика между класовете драйвери на Oracle jdbc?

  5. Изхвърляне на курсора