-
problem occur load image using blob
hi
guys
pls help me,,
1) i m trying to store load image to oracle 9i release pack 1,
at the time of loading image using procedure,, it's shows me an error .
so pls help
CREATE TABLE images (
id NUMBER(10) NOT NULL,
name VARCHAR2(50) NOT NULL,
image BLOB NOT NULL
)
/
ALTER TABLE images ADD (
CONSTRAINT images_pk PRIMARY KEY (id)
)
/
ALTER TABLE images ADD (
CONSTRAINT images_uk UNIQUE (name)
)
/
CREATE SEQUENCE images_seq
/
CREATE OR REPLACE DIRECTORY image_dir AS 'C:\'
/
Create PL/SQL Code
Next we create the code to load and retrieve the images:
CREATE OR REPLACE PACKAGE Images_API AS
PROCEDURE Load (p_name IN images.name%TYPE);
PROCEDURE Get (p_name IN images.name%TYPE,
p_type IN VARCHAR2 DEFAULT 'gif');
PROCEDURE Get_Gif (p_name IN images.name%TYPE);
PROCEDURE Get_Jpeg (p_name IN images.name%TYPE);
END;
/
CREATE OR REPLACE PACKAGE BODY Images_API AS
PROCEDURE Load (p_name IN images.name%TYPE) IS
v_bfile BFILE;
v_blob BLOB;
BEGIN
INSERT INTO images (id, name, image)
VALUES (images_seq.NEXTVAL, p_name, empty_blob())
RETURN image INTO v_blob;
v_bfile := BFILENAME('IMAGE_DIR', p_name);
Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
Dbms_Lob.Loadfromfile(v_blob, v_bfile, Dbms_Lob.Getlength(v_bfile));
Dbms_Lob.Fileclose(v_bfile);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END;
PROCEDURE Get (p_name IN images.name%TYPE,
p_type IN VARCHAR2 DEFAULT 'gif') IS
v_blob BLOB;
v_amt NUMBER := 30;
v_off NUMBER := 1;
v_raw RAW(4096);
BEGIN
SELECT image
INTO v_blob
FROM images
WHERE name = p_name;
Owa_Util.Mime_Header('image/' || p_type);
BEGIN
LOOP
Dbms_Lob.Read(v_blob, v_amt, v_off, v_raw);
Htp.Prn(Utl_Raw.Cast_To_Varchar2(v_raw));
v_off := v_off + v_amt;
v_amt := 4096;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END;
PROCEDURE Get_Gif (p_name IN images.name%TYPE) IS
BEGIN
Get (p_name, 'gif');
END;
PROCEDURE Get_Jpeg (p_name IN images.name%TYPE) IS
BEGIN
Get (p_name, 'jpeg');
END;
END;
/
Load Images
Next we load some images into the database:
EXEC Images_API.Load('save.gif');
i get error,,
ERROR at line 1:
ORA-22288: file or LOB operation FILEOPEN failed
The system cannot find the file specified.
ORA-06512: at "TIUMAS.IMAGES_API", line 20
ORA-06512: at line 1
2) can i use same thing to load .doc or .txt files.
if u find better way than it,, let me know
-
well does the file exist in the place the database is looking for it
-
By the way, you could have linked to my article:
http://www.oracle-base.com/articles/...OverHTTP9i.php
Rather than republish all the source code on this forum.
Did you know republishing internet content is a breach of the Digital Rights Act?
Cheers
Tim...
-
Hi Tim
I did not know that the content on your site is copyrigthed.
By the way i had used the contents of your site primarily when i was doing OCP exams for 9i.Books werent available then i had taken printouts and distrubted to my friends.
on second thoughts you should have mentioned all those as copyrighted material soemwhere on your site as footer or header.
regards
Hrishy
-
so the copyright and disclaimer link just passed you by?
-
Hi.
I'm not having a go at the Zalak or anyone else here, I just think it is worth explaining some stuff.
Everything displayed on the internet has an implicit copyright, regardless of copyright statements. That's just the way it is. Even this comment is subject to the same rules! Some countries have formal legislation upholding this. In in the USA they have the Digital Copyright Act. In Europe I think it's called the European Union Copyright Directive. They all amount to much the same thing.
Anyway, I have no problem with people reading, and linking to my stuff. That's why it is on the net. I also don't mind if people print out articles to read when they are away from the computer. I do get annoyed when people cut & paste whole chunks of articles, rather than linking to them. It is after all illegal.
I'm a little sensitive to this stuff these days since I've had the whole of my website ripped and republished on other domains twice in recent months. No doubt people will read this and think, "get over yourself", but if you let one thing slip, people start thinking it's OK and before you know it everyone is doing it.
Anyway, I'll retire to my dark cellar now...
Cheers
Tim...
-
Chesk where IMAGE_DIR points to. It could happen that the directory points to different path
-
Originally Posted by TimHall
I'm a little sensitive to this stuff these days since I've had the whole of my website ripped and republished on other domains twice in recent months. No doubt people will read this and think, "get over yourself", but if you let one thing slip, people start thinking it's OK and before you know it everyone is doing it.
[rant]I agree with you whole-heartedly. If someone prints work in any format without first crediting the author it is a clear infringement of copyright.
I write novels in my spare time and someone who I trusted to give me a review of a portion of one of my books, decided to post what I had given them on the net. They did it with the best of intentions, but that isn't really the point. It was my work and I should decide on where it does or does not go.[/rant]
Assistance is Futile...
-
Guys,
The discussion is really interesting but it has little to do with loading images in LOBs
-
OK. I agree. I have successfully manages to hijack this thread. Sorry!
As previous people have said, your directory is pointing to "C:\" and you are attempting to load the image "save.gif".
Does the file "C:\save.gif" exist on your database server? If not, then that is your problem.
If it does exist, please post back.
Cheers
Tim...
And sorry again for hijacking this thread.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|