oracle存图片是我们经常需要实现的功能,下面就教您一个使用存储过程实现oracle存图片的方法,如果您在oracle存图片方面遇到过问题,不妨一看。
要在oracle存图片 用blob类型,首先在数据库里建立:
--连接到管理员
- conn sys/tbsoft as sysdba;
--为scott用户授权
- grant create any directory to scott;
--回到scott用户
- conn scott/tiger;
--创建存储图片的表
- CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);
--创建存储图片的目录
- CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\picture';
--在c:下自己建一个叫picture的文件夹
- CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS
F_LOB BFILE;--文件类型
B_LOB BLOB;
- BEGIN
- iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE)
- VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB
--插入空的blob
- F_LOB:= BFILENAME ('IMAGES', FILENAME);
--获取指定目录下的文件
- DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONLY);
--以只读的方式打开文件
- DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));
--传递对象
- DBMS_LOB.FILECLOSE (F_LOB);
--关闭原始文件
- COMMIT;
- END;
- /
--在C:\picture下放一张图片1.gif
--将该图片存入表