Oracle (Blob einfügen)

chrishawaii

Grünschnabel
moinsen,

mein system: Windows XP
Datenbank: Oracle 9.2

Ich will eine Datei (test.jpeg) in meine datenbank laden.
Mein Skript für SQL*Plus:

declare
l_blob blob;
l_bfile bfile;
begin
insert into grafik(ID, GRAFIKEN) values(1, empty_blob())
returning GRAFIKEN into l_blob;
l_bfile := bfilename('c:\temp\', 'test.jpeg');
dbms_lob.fileopen(l_bfile, dbms_lob.file_readonly);
dbms_lob.loadfromfile(l_blob, l_bfile, dbms_lob.getlength(l_bfile));
dbms_lob.fileclose(l_bfile);
end;

Als Fehlermeldung erhalte ich folgende Nachricht:

declare
*
FEHLER in Zeile 1:
ORA-22285: Verzeichnis oder Datei für FILEOPEN-Vorgang ist nicht vorhanden
ORA-06512: in "SYS.DBMS_LOB", Zeile 504
ORA-06512: in Zeile 8

Die Datei ist in dem Pfad enthalten und Rechtemäßig ist auch alles i.o.

Bitte helft mir.

Gruss Chris
 
Hallo!

Du musst das Verzeichnis vor dem ersten Zugriff Oracle bekannt machen:
Code:
CREATE OR REPLACE DIRECTORY
    EXAMPLE_LOB_DIR
    AS
    'c:/Foo'
/
sonst kann Oracle nicht drauf zugreifen.

Gruß Tom
 
Danke tom!
In diese Richtung hatte ich dank google auch schon spekuliert. hab ich auch ausprobiert, aber dann gibs immer 'n Rechtfehler ("ORA-01031 Unzureichende Berechtigungen").
Also wieder googeln...
Hab dann versucht meine Rechte auf Admin zu setzen, indem ich mich abmelde (NORMAL) und wieder als SYSDBA anmelde. Nun kam ich auf einmal nicht mehr an meine Tabelle GRAFIK ran. Also wieder abgemeldet und versucht, wieder als NORMAL anzumelden. Ging nicht mehr. D.h. ich kann mich jetzt nur noch als SYSDBA anmelden und komme an meine Tabelle nicht mehr ran. Was muß ich tun, um erstens wieder als NORMAL an die Tabelle zu kommen und zweitens die Berechtigung zu bekommen ein DIRECTORY zu createn.
Weitere Recherche hat nur ergeben in der /ORACLE_HOME/network/admin/sqlnet.ora die AUTHENTICATION zu ändern, wenn sie auf NTS gesetzt ist. Aber das trifft wohl eher auf die Problematik Server/Client zu?
Hab mich verfranst.

Gruss Chris
 
Zurück