oracle8 & blob

Vojtech Novacek linux na netcore.cz
Středa Květen 3 21:35:59 CEST 2000


On Wed, 3 May 2000, Michal [iso-8859-2] Helán wrote:

> Muze mi nekdo (pokud mozno podrobne) poradit jak vlozit do tabulky blob
> (obrazek)?
> Prave zkoumam moznosti data image cartridge, a celkem v tom tapu.
> 
>     Diky
>         Michal Helan

Pomoci InterMedia Image napr. takto:

-- vytvoreni tabulky
CREATE TABLE images(
	image_id	NUMBER	NOT NULL,
	s_image		ORDSYS.ORDImage,		-- obrazek se
ulozi cely do db
	l_image		ORDSYS.ORDImage,		-- ulozi se pouze
metadata
	CONSTRAINT pk_images PRIMARY KEY (image_id)
);

CREATE SEQUENCE seq_images;

-- adresar, kde jsou obrazky fyzicky ulozeny
CREATE DIRECTORY IMGDIR AS '/nekde/tady';

-- pod systemovym uctem si pridame prava
GRANT READ ON DIRECTORY IMGDIR to my_account;


-- sql blok, ktery vlozi obrazek
-- a) cely do databaze(mensi obrazky)
-- b) pouze metadata(velke obrazky)
DECLARE
	img_num NUMBER;
	img	ORDSYS.ORDImage;
	ctx	RAW(4000) := NULL;
BEGIN
	SELECT seq_images.NEXTVAL INTO img_num FROM DUAL;

	INSERT INTO images VALUES(img_num,
		-- s_image
		ORDSYS.ORDImage(ORDSYS.ORDSource(empty_blob(), NULL, NULL,
NULL, SYSDATE, 1), NULL, NULL, NULL, NULL, NULL, NULL, NULL),
		-- l_image
		ORDSYS.ORDImage(ORDSYS.ORDSource(empty_blob(), 'file',
'IMGDIR', 'obrazek.jpg', SYSDATE, 0), NULL, NULL, NULL, NULL, NULL, NULL,
NUll));

	SELECT s_image INTO img FROM images WHERE image_id = image_num FOR
UPDATE;
	img.importFrom(ctx, 'file', 'IMGDIR', 'obrazek.jpg');
	UPDATE images SET s_image = img WHERE image_id = image_num;

	SELECT l_image INTO img FROM images WHERE image_id = image_num FOR
UPDATE;
	img.importFrom(ctx, 'file', 'IMGDIR', 'obrazek.jpg');
	img.serProperties;
	UPDATE image SET l_image = img WHERE image_id = image_num;

	COMMIT;

END;
	

Jinak se muzete podivat napr. na
http://technet.oracle.com/doc/inter.815/a67299/mm_uses.htm kde jsou dalsi
priklady

S pozdravem

				  _---------------------------------------
	Vojtech Novacek		_-
--------------------------------



Další informace o konferenci Test