0

我正在尝试使用以下查询将“png”图像插入到 sql 表字段(称为条形图,其类型为 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';

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

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '(BULK N'/home/barchart' 附近使用正确的语法

4

3 回答 3

0

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

于 2013-11-15T14:07:18.883 回答
0

我想你可以使用 LOAD_FILE

例子:

INSERT INTO expBLOB(ID,IMAGE) VALUES(1,LOAD_FILE('/some/path/image.png'))
于 2013-11-15T13:57:55.890 回答
0

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

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

我建议您使用用任何语言制作的简单程序加载文件(我不知道您是否正在使用 php、c#... 进行开发)并通过简单的插入查询将已加载到内存中的文件传递给数据库。

于 2013-11-15T14:24:07.507 回答