如何向ORACLE数据库表中存入带图片的文件?

例如记录:
values(1,'行车途中,仪表板上的“”灯亮起或闪烁,若暂时未发现操纵异常,可以继续行驶。','正确',‘错误’);
表应该怎么建?
insert 语句怎么写?

第1个回答  推荐于2017-09-20
create table test
(
NID VARCHAR2(1) not null,
IMG BLOB,
zhengqueFlag VARCHAR2(1),
cuowuFlag VARCHAR2(1)
)
说明:
1、IMG字段只需要保存图片,将图片信息经过Base64编码,存到数据库BLOB字段中。显示的时候要经过Base64解码。
2、对于像“正确”、“错误”用标志位在区别。你可以用1表示正确、0表示错误。当然你也可以用汉字的保存这样的信息。自己来设计。

然后你到网上查一下怎么样对BLOB字段进行操作。如果不行,我在增加回复。追问

我是想把'行车途中,仪表板上的“图片”灯亮起或闪烁,若暂时未发现操纵异常,可以继续行驶。'这个当做一个变量存进去

追答

以我的工作经历,感觉这样不太好处理。我的建议就是,把'行车途中,仪表板上的“图片”灯亮起或闪烁,若暂时未发现操纵异常,可以继续行驶。'
存为'行车途中,仪表板上的@灯亮起或闪烁,若暂时未发现操纵异常,可以继续行驶。'
然后图片单独存到BLOB字段中。这样你可以取@前的内容+图片+@后面的内容。
如果文本和图片存到一个字段中,到时候取出来后怎么处理啊?
也许我的能力有限。你再问问别人吧。

本回答被提问者采纳
第2个回答  2015-08-11
create table INSERE_image_table(ID INT NOT NULL,IMG BLOB NOT NULL);
--LINUX
mkdri -p /u01/backup/image

CREATE DIRECTORY '/u01/backup/image'
CREATE OR REPLACE PROCEDURE SP_INSERT_IMG(PID INT,IMG_FILENAME NVARCHAR2) AS
FILE_BLOB BFIL;
FILE_CLOB BLOB;
BEGIN
INSERT INTO INSERE_image_table(ID,IMG) VALUES (PID,EMPTY_BLOB()) RETURN IMG into FILE_CLOB ;
FILE_BLOB :=BFILENAME('IMAGES',FILENAME);
dbms_lob.fileopen(FILE_BLOB ,dbms_lob.file_readonly);
dbms_lob.loadfromfile(FILE_CLOB ,FILE_BLOB ,
dbms_lob.getlength(FILE_BLOB ));
dbms_lob.fileclose(FILE_BLOB );
commit;
end;
/
执行
exec SP_INSERT_IMG('001',' image.jpg');

select * from INSERE_image_table;
相似回答