How to Insert multimedia data(image, video) in oracle table.
-----------------------------------------------------------
Follow the bellows steps...
How to save blob data to disk from oracle table?
1)Create Directory Where multimedia resides.
create or replace directory temp as 'C:/dir_blob';
2)Grant read permission to the user who work with this directory.
grant read on directory temp to test;
3)Create the Table which holds Lov object.
-- the storage table for the image file
CREATE TABLE image (
dname VARCHAR2(30), -- directory name
sname VARCHAR2(30), -- subdirectory name
fname VARCHAR2(30), -- file name
iblob BLOB); -- image file
4)Create the procedure that insert multimedia objects.
/* Formatted on 2011/01/11 18:10 (Formatter Plus v4.8.8) */
-- create the procedure to load the file
CREATE OR REPLACE PROCEDURE load_file (
pdname VARCHAR2,
psname VARCHAR2,
pfname VARCHAR2
)
IS
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
src_file := BFILENAME ('TEMP', pfname);
-- insert a NULL record to lock
INSERT INTO image
(dname, sname, fname, iblob
)
VALUES (pdname, psname, pfname, EMPTY_BLOB ()
)
RETURNING iblob
INTO dst_file;
-- lock record
SELECT iblob
INTO dst_file
FROM image
WHERE dname = pdname AND sname = psname AND fname = pfname
FOR UPDATE;
-- open the file
DBMS_LOB.fileopen (src_file, DBMS_LOB.file_readonly);
-- determine length
lgh_file := DBMS_LOB.getlength (src_file);
-- read the file
DBMS_LOB.loadfromfile (dst_file, src_file, lgh_file);
-- update the blob field
UPDATE image
SET iblob = dst_file
WHERE dname = pdname AND sname = psname AND fname = pfname;
-- close file
DBMS_LOB.fileclose (src_file);
END load_file;
/
5)Execute the Procedure.
SQL> exec load_file('TEMP','This is Image','image.png');
PL/SQL procedure successfully completed.
7)From Oracle Determine multimedia size..
1 declare
2 a blob;
3 begin
4 select iblob into a from image;
5 dbms_output.put_line(dbms_lob.getlength(a));
6* end;
SQL> /
PL/SQL procedure successfully completed.
SQL> set serveroutput on
SQL> /
66666
PL/SQL procedure successfully completed.
How to save blob data to disk from oracle table?
-----------------------------------------------------------
Follow the bellows steps...
How to save blob data to disk from oracle table?
How to insert image/pdf/multimedia or blob data to oracle database table from client machine without using database directory ?
1)Create Directory Where multimedia resides.
create or replace directory temp as 'C:/dir_blob';
2)Grant read permission to the user who work with this directory.
grant read on directory temp to test;
3)Create the Table which holds Lov object.
-- the storage table for the image file
CREATE TABLE image (
dname VARCHAR2(30), -- directory name
sname VARCHAR2(30), -- subdirectory name
fname VARCHAR2(30), -- file name
iblob BLOB); -- image file
4)Create the procedure that insert multimedia objects.
/* Formatted on 2011/01/11 18:10 (Formatter Plus v4.8.8) */
-- create the procedure to load the file
CREATE OR REPLACE PROCEDURE load_file (
pdname VARCHAR2,
psname VARCHAR2,
pfname VARCHAR2
)
IS
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
src_file := BFILENAME ('TEMP', pfname);
-- insert a NULL record to lock
INSERT INTO image
(dname, sname, fname, iblob
)
VALUES (pdname, psname, pfname, EMPTY_BLOB ()
)
RETURNING iblob
INTO dst_file;
-- lock record
SELECT iblob
INTO dst_file
FROM image
WHERE dname = pdname AND sname = psname AND fname = pfname
FOR UPDATE;
-- open the file
DBMS_LOB.fileopen (src_file, DBMS_LOB.file_readonly);
-- determine length
lgh_file := DBMS_LOB.getlength (src_file);
-- read the file
DBMS_LOB.loadfromfile (dst_file, src_file, lgh_file);
-- update the blob field
UPDATE image
SET iblob = dst_file
WHERE dname = pdname AND sname = psname AND fname = pfname;
-- close file
DBMS_LOB.fileclose (src_file);
END load_file;
/
5)Execute the Procedure.
SQL> exec load_file('TEMP','This is Image','image.png');
PL/SQL procedure successfully completed.
7)From Oracle Determine multimedia size..
1 declare
2 a blob;
3 begin
4 select iblob into a from image;
5 dbms_output.put_line(dbms_lob.getlength(a));
6* end;
SQL> /
PL/SQL procedure successfully completed.
SQL> set serveroutput on
SQL> /
66666
PL/SQL procedure successfully completed.
How to save blob data to disk from oracle table?