Bilder in Oracle DB

whoa

Knowledge Reigns Supreme
Registriert
31. August 2001
Reaktionspunkte
969
Ort
Alte Försterei
Ich versuche für eine Oracle DB mit Weboberfläche Bilder in die Datenbank zu bekommen, da es mir nicht "gestattet" ist diese auf dem iAS abzulegen.
Momentan habe ich die Bilder lokal auf meinem Host abgelegt. Dies ist natürlich kein Zustand. *rolleyes*

Ich hab mal ein bisschen rumprobiert, aber leider nich wirklich 'nen Plan. :(

Hab 'ne Tabelle angelegt..
CREATE TABLE S_Bilder
(bild BLOB);

Dann ein Controlfile "gebastelt"..
LOAD DATA
INFILE 'vera_logo_large.jpg'
APPEND
INTO TABLE S_Bilder
(bild)

Danach per SQL*Loader versucht ein Bild in die Tabelle zu "quetschen".. ;)
sqlldr ***/***@***
control=<controlfile (siehe oben)>
data=O:\daten\img\vera_logo_large.jpg

Zum Schluß hab ich mal ein count auf die Tabelle S_Bilder gemacht.
SQL> select count(*) from s_bilder;

COUNT(*)
----------
11

Ich frage mich jetzt..
- Wieso stehen in der Tabelle plötzlich 11 Datensätze?
- Konnte ich das Bild überhaupt in die Tabelle befördern?
- Wie kann ich das Bild in der Tabelle ansprechen?
- Bin ich total auf dem Holzweg?

greetz,
whoa :)
 
Hey.. war ja erfreut den Thread beim googln an No. 1 zu finden. :D
http://www.google.de/search?q=bilder+oracle+db+loader

Naja, jedenfalls hab ich inzwischen sogar noch eine einfachere Lösung, als die auf experts-exchange.com, um die Bilder in die DB zu kriegen. Bei der experts-exchange.com Lösung mußte ich immer zu unseren DB-Admins rennen, wenn ich neue Bilder in die DB "schaufeln" wollte.. da ich keine Rechte besitze um die Bilder überhaupt erst einmal auf den iAS zu bringen. Also falls es jemanden interessiert hier nun meine aktuelle Lösung.. :)

Zuerst wird die Tabelle S_IMAGES angelegt.
Code:
CREATE TABLE S_IMAGES
  (image    BLOB,
   name     VARCHAR2(255),
   extfile  VARCHAR2(200));

Die Bilder, sowie die Dateien input.txt und bilder.ctl befinden sich im Verzeichnis D:\img\.

In der Datei input.txt wird der Name eines Bildes angegeben mit welchem das Bild dann angesprochen werden kann, sowie der Pfad des Bildes. Beide Angaben sind jeweils durch ein Semikolon getrennt.

input.txt
Code:
vera_logo;d:\img\vera_logo.jpg
vera_logo_large;d:\img\vera_logo_large.jpg
top_bogen;d:\img\top_bogen.gif

Die Namen der Bilder in der Tabelle S_IMAGES müssen natürlich eindeutig sein. ;)

bilder.ctl
Code:
LOAD DATA
INFILE 'd:\img\input.txt'
APPEND
INTO TABLE s_images
FIELDS TERMINATED BY ';'
(name, extfile,
image LOBFILE(extfile) TERMINATED BY EOF)

Aufruf des SQL*Loaders
Code:
sqlldr <Datenbank Login>/<Passwort>@<Schema> control=D:\img\bilder.ctl

that's it.. :D
 
Zurück