ORQACLE 9.2i BFILE- funkcie
Kluvanek Martin
kluvanek na tesnet.cz
Úterý Červenec 15 19:37:34 CEST 2003
Pomooc.
Uz opravdu netusim, kde robim chybu.
Netusite nahodou niekto, kde je zrada?
Napisal som si funkciu
create or replace function BFILE_FILESIZE(BLOK in BFILE) return number is
Result number;
begin
result:=0;
if blok is null then
result:=0;
else
result:=SYS.DBMS_LOB.getlength(blok);
end if;
return(Result);
end BFILE_FILESIZE;
Spravil som si testovaci program
declare
da bfile;
v number;
begin
select data into da from blob_zaznam where zaznam_id=1006;
if da is null then
sys.dbms_output.put_line('NULL');
else
v:=SYS.DBMS_LOB.getlength(da);
sys.dbms_output.put_line('len1=' ||to_char(v));
v:= BFILE_FILESIZE(da);
sys.dbms_output.put_line('len2=' ||to_char(v));
end if;
end;
Ked to spustim (id 1006 ukazuje na korektny nenulovy zaznam)
tak sa vypise len1=nejake cislo (spravne)
a vo volani BFILE_FILESIZE to vsak padne na prikaze
result:=SYS.DBMS_LOB.getlength(blok);
ORA-22285:pro operaci GETLENGHT neexistuje adresar nebo soubor.
???preco volanie jednej a tej istej funkcie ide z testovacieho sql ok a
z funkcie nie?
Pricom DBMS_LOB.FILEGETNAME vracia spravne
dir="MSE_ANALOGDATA" file="2B\Gen2#.tes"
DBMS_LOB.fileexists =1
DBMS_LOB.getlength=5466
DBMS_LOB.fileopen funguje....
Pokial je BFILE null, tak to funguje spravne (vrati 0).
Takto nefunguje GetLength, Fileexists
ale funguje FILEGETNAME... (procedura)...
Dokonca i vovnutri v BFILE_FILESIZE ked to vysperkujem i FILEGETNAME tak
FILEGETNAME vrati rozumne hodnoty a GETLENGTH zhavaruje.....
Pomoooc :-(
--
Martin Kluvanek
ved.odd. vyvoje (head of development department)
TES s.r.o
Testovani Energetickych Systemu (Testing of Energetical Systems)
Prazska 597
674 01 Trebic
Czech republic
tel:568 8384 28 (+420 5688384 28)
fax:568 8384 27 (+420 5688384 27)
homepage: http://www.tesnet.cz
Další informace o konferenci Databases