Oracle8i - InterMedia/Image dotaz

Ludek Rasek ludek.rasek na pvt.cz
Středa Prosinec 15 14:10:56 CET 1999


select tem na blob ziskate tzv. BLOB lokator, ktery odkazuje primo na data do databaze (neco jako ukazatel).
pokud tedy potom date priklaz ke zmensovani obrazku, probehne nad daty v db, z cehoz vyplyva take nutnost zamknout dany radek (nutne pro kazdou operaci s blobem). 

Zrejme budete muset vytvorit nejakou docasnou kopii. 
Resenim by asi bylo vytvorit nekde nejaky docasny blob(v jine tabulce) a tam presypat data a provest operaci a potom smazat.
Je mozno to udelat do externiho souboru nebo do blobu v tabulce.


--
Ludek Rasek



-----Původní zpráva-----
Od: Vojtech Novacek <linux na netcore.cz>
Komu: databases na linux.cz <databases na linux.cz>
Datum: 15. prosince 1999 12:45
Předmět: Oracle8i - InterMedia/Image dotaz


>
>Dobry den,
>
>mam problem s pouzitim objektu ORDSYS.ORDImage. Chtel bych z tabulky
>obsahujici obrazky vyselectovat jejich zmenseniny (a ty prezentovat na
>webu). Vytvoril jsem si nasledujici proceduru:
>
>CREATE OR REPLACE PROCEDURE get_scale_image (
> img_id IN NUMBER,
> sx IN NUMBER,
> sy IN NUMBER,
> img_data IN OUT BLOB)
>AS
> img ORDSYS.ORDImage;
>BEGIN
> SELECT image INTO img FROM images WHERE image_id = img_id;
> img.process('maxScale=100,100');
> img_data := img.getContent;
>END;
>
>a odpovidajici tabulku 'images'.
>
>Pokud vsak zkusim 'DECLARE b blob BEGIN get_scale_image(1,100,100,b); 
>END;' dostanu tyto chyby:
>
>ORA-29400: data cartridge error
>IMG-00712: unable to write to destination image
>ORA-22920: row containing the LOB value is not locked
>...
>???
>Pokud ale upravim procedure a nakonec selectu dam FOR UPDATE, procedura
>probehne v poradku, ale zaroven mi znici puvodni image, coz nechci.
>Muze mi nekdo napovedet, kde delam chybu.
>Diky.
>
>S pozdravem
>
> 
>_---------------------------------------
> Vojtech Novacek _-
>--------------------------------



Další informace o konferenci Databases