Oracle中数据类型BLOB是怎么插入数据的?
我想从一个文件里把要存的信息读出来 如test.txt(excel也可以)文件中的数据是
"<item1>test1</item1><item2>test2</item2>"
数据库里表对应该的该字段的数据类型是BLOB型,
如何如通INSERT 语句,把test.txt文件中的数据插曲入到表里.哪个高人告诉下小弟,最好有小段代码,谢谢.
如 INSERT newTab
VALUES('','',''......)
------解决方案--------------------
BLOB对象存放的是指向文件的指针,我的思路是把指向test.txt的指针存到BLOB中,然后通过DBMS_LOB包的READ方法读取test.txt得内容,以下是示例代码:
--将图像文件“aki.bmp”写入到PHOTO列
declare
lobloc blob;
fileloc bfile;
amount int;
src_offset int:=1;
dest_offset int:=1;
begin
select photo into lobloc from lob_example2
where id=&id for update;
fileloc:=bfilename('f','&f');
dbms_lob.fileopen(fileloc,0);
amount:=dbms_lob.getlength(fileloc);
dbms_lob.loadblobfromfile(lobloc,fileloc,amount,dest_offset,src_offset);
dbms_lob.fileclose(fileloc);
commit;
end;
--读取BLOB列数据(应使用RAW变量接收BLOB中存放的二进制数据)
declare
lobloc BLOB;
buffer raw(2000);
amount int;
offset int:=1;
begin
select photo into lobloc from lob_example2
where id=&id;
amount:=dbms_lob.getlength(lobloc);
dbms_lob.read(lobloc,amount,offset,buffer);
end;
本人也很菜,因为刚看到这个例子,就把它贴出来,希望能帮到楼主,给你启发。
------解决方案--------------------我的印象中是转成二进制以后,然后用UPDATE更新流