我正在尝试插入一个' 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
答案 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#...)并通过一个简单的插入将它已经加载到内存中查询。