sql >> Databasteknik >  >> RDS >> Oracle

Infogar bild i BLOB Oracle 10g

Du kan inte komma åt en lokal katalog från pl/sql. Om du använder bfile kommer du att sätta upp en katalog (skapa katalog) på servern där Oracle körs där du måste lägga dina bilder.

Om du vill infoga en handfull bilder från din lokala dator behöver du en app på klientsidan för att göra detta. Du kan skriva din egen, men jag använder vanligtvis Toad för detta. Klicka på tabellen i schemabläddraren. Klicka på datafliken och tryck på + för att lägga till en rad. Dubbelklicka på kolumnen BLOB och en guide öppnas. Den längst till vänster ikonen kommer att ladda en bild i blob:

SQL Developer har en liknande funktion. Se länken "Ladda" nedan:

Om du behöver dra bilder över tråden kan du göra det med pl/sql, men det är inte rakt fram. Först måste du ställa in åtkomst till ACL-listan (av säkerhetsskäl) så att en användare kan dra över kabeln. Se den här artikeln för mer om ACL-inställningar.

Förutsatt att ACL är klar, skulle du dra bilden så här:

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;

Hoppas det hjälper.



  1. Förstå sammanställningen av databasnivå och effekten av att ändra den för en databas

  2. Hur man ansluter till värd PostgreSQL från vagrant virtualbox-maskin

  3. Oracle 10g express hemsida kommer inte upp

  4. Distribuera och konfigurera ODP.NET för att fungera utan installation med Entity Framework