日期:2014-05-17  浏览次数:21057 次

如何用sql语句写入含blob类型字段的数据?
tablename: tab1; 字段:id number , phone blob 两个字段, 一个图片文件:c:\test\phone1.jpg 中,如何把这个图片文件用sql写入到这个表中,麻烦能具体写一下吗,谢谢!

------解决方案--------------------
无法直接用纯SQL语句实现,但可以写个PL/SQL块来实现。
具体实例,请参考
SQL code

-- 创建表空间TeacherSpace
CREATE TABLESPACE TeacherSpace
DATAFILE 'TeacherDFile.dbf' SIZE 10M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

-- 老师信息表
CREATE TABLE Teacher
(
    NAME        CHAR(10), --姓名
    RESUME      CLOB,     --简历
    Photo       BLOB,     --照片
    Recording   BFILE     --自我陈述(录音)
)    
LOB(RESUME, Photo) STORE AS 
(
    TABLESPACE TeacherSpace
    STORAGE(INITIAL 6144 NEXT 6144)
    CHUNK 8K
    ENABLE STORAGE IN ROW
);

-- 创建目录DBFILE_DIR, 并授与用户权限,需要SYS帐户
CREATE OR REPLACE DIRECTORY DBFILE_DIR AS 'D:\D12_01';
GRANT READ ON DIRECTORY DBFILE_DIR TO TEST;
-- 向Teacher表插入2条记录
INSERT INTO Teacher VALUES('张力', EMPTY_CLOB(), EMPTY_BLOB(), BFILENAME('DBFILE_DIR', 'a.mp3'));
INSERT INTO Teacher VALUES('王永', EMPTY_CLOB(), EMPTY_BLOB(), BFILENAME('DBFILE_DIR', 'b.mp3'));