ORQACLE 9.2i BFILE- funkcie

Kluvanek Martin kluvanek na tesnet.cz
Pondělí Červenec 21 18:23:37 CEST 2003


Kluvanek Martin wrote:
Pomooc, pomoooc, netusite nahodou kde je ta chciplina zakopana. 
Nedokazem s tym nic spravit.
Dobrovolnym pomocnikom i mozem zostavit sadu SQL prikazov, ako si to a 
popis co upravit v CFG a ako otestovat....

> 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