Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wstawianie obrazu do BLOB Oracle 10g

Nie możesz uzyskać dostępu do katalogu lokalnego z pl/sql. Jeśli używasz bfile, skonfigurujesz katalog (utwórz katalog) na serwerze, na którym działa Oracle, gdzie będziesz musiał umieścić swoje obrazy.

Jeśli chcesz wstawić garść obrazów z komputera lokalnego, potrzebujesz do tego aplikacji po stronie klienta. Możesz napisać swój własny, ale zazwyczaj używam do tego Ropucha. W przeglądarce schematów kliknij tabelę. Kliknij kartę danych i naciśnij znak +, aby dodać wiersz. Kliknij dwukrotnie kolumnę BLOB, a otworzy się kreator. Ikona po lewej stronie załaduje obraz do bloba:

SQL Developer ma podobną funkcję. Zobacz poniższy link „Załaduj”:

Jeśli chcesz przeciągnąć obrazy przez przewód, możesz to zrobić za pomocą pl/sql, ale nie jest to proste. Najpierw musisz skonfigurować dostęp do listy ACL (ze względów bezpieczeństwa), aby umożliwić użytkownikowi przeciągnięcie kabla. Zobacz ten artykuł, aby uzyskać więcej informacji na temat konfiguracji ACL.

Zakładając, że lista ACL jest kompletna, możesz wyciągnąć obraz w ten sposób:

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;

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. KLUCZ OBCY PRZY USUWANIU BŁĘDU OGRANICZENIA — Oracle

  2. ORA-00984:kolumna nie jest tutaj dozwolona

  3. SQL ROWNUM jak zwrócić wiersze między określonym zakresem

  4. Jak uzyskać BLOB z pliku w PL/SQL?

  5. GI 12.2 Zmiany