sql >> Database teknologi >  >> RDS >> Oracle

Indsættelse af billede i BLOB Oracle 10g

Du kan ikke få adgang til en lokal mappe fra pl/sql. Hvis du bruger bfile, opsætter du et bibliotek (opret bibliotek) på den server, hvor Oracle kører, hvor du skal placere dine billeder.

Hvis du vil indsætte en håndfuld billeder fra din lokale maskine, skal du bruge en app på klientsiden for at gøre dette. Du kan skrive din egen, men jeg bruger typisk Toad til dette. Klik på tabellen i skemabrowseren. Klik på fanen data, og tryk på + for at tilføje en række. Dobbeltklik på BLOB-kolonnen, og en guide åbnes. Ikonet længst til venstre indlæser et billede i klatten:

SQL Developer har en lignende funktion. Se linket "Indlæs" nedenfor:

Hvis du har brug for at trække billeder over ledningen, kan du gøre det ved hjælp af pl/sql, men det er ikke ligetil. Først skal du konfigurere ACL-listeadgang (af sikkerhedsmæssige årsager) for at tillade en bruger at trække over ledningen. Se denne artikel for mere om ACL-opsætning.

Forudsat at ACL er fuldført, vil du trække billedet sådan her:

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;

Håber det hjælper.



  1. SQLite Query Exception Android Studio Syntax Fejlkode 1

  2. Sådan tilføjer du lodrette grænser til dit SQL*Plus / SQLcl-outputgitter

  3. Sådan returneres elementer fra et JSON-array i MariaDB

  4. 2 måder at få størrelsen på en database i PostgreSQL