将图片插入sql表时出错

时间:2013-11-15 13:39:12

标签: mysql sql openrowset

我正在尝试插入一个' png'使用以下查询将图像转换为sql表字段(称为barchart,类型为blob)。

INSERT INTO disease_symptom_soc(barchart) Values ((SELECT BULKColumn FROM OPENROWSET(BULK N'/home/barchartC2936861.png', SINGLE_BLOB) AS Image)) where disease_id='C2936861';

我收到以下错误。可能是什么原因?

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   语法在'附近使用(BULK N' / home / barchart' at line 1

3 个答案:

答案 0 :(得分:0)

我猜你可以使用LOAD_FILE

示例:

INSERT INTO expBLOB(ID,IMAGE) VALUES(1,LOAD_FILE('/some/path/image.png'))

答案 1 :(得分:0)

如果可以,请将列的数据类型更改为“图像”。取决于您使用的sql server版本。否则,如果它是基于oracle的db,则必须创建一个loadfile proc并按如下方式执行: http://arjudba.blogspot.com/2008/06/how-to-insert-blob-dataimage-video-into.html

答案 2 :(得分:0)

MySql OpenrowSet不用于将文件复制到数据库中,而是用连接字符串查询外部文件(csv,xls),例如

OPENROWSET ('MSDASQL','mysql connection string','query')

我建议你用一个用任何语言编写的简单程序加载文件(我不知道你是用php开发的,c#...)并通过一个简单的插入将它已经加载到内存中查询。