首页 > 解决方案 > MySQL 中的 LOAD_FUNCTION 显示无效标识符

问题描述

我创建了一个表格,即图片以将图像插入表格中。使用插入命令并使用 load_function 加载我的图片后,它显示无效标识符。

CREATE table pics(id number(10),pics1 blob);

INSERT INTO pics 
values(1,LOAD_FUNCTION('C:\Users\Vandana\Desktop\face\my_image.jpg'));

标签: mysql

解决方案


您的问题是由您的CREATE TABLE陈述引起的。

number不是有效的 MySQL 列数据类型,您应该使用INTEGER(10) SIGNED [sic]

CREATE TABLE pics(id INTEGER(10) SIGNED, pics1 BLOB);

然而NUMBER,对于 Oracle 数据库来说,它是一种有效的数据类型,这与 MySQL 非常不同。

LOAD_FUNCTION不是有效的 MySQL 函数[原文如此]

我相信您想要LOAD_FILE,它将检索 blob 列的文件内容。

在引用 Windows 文件路径时,您还应该使用双反斜杠,以避免转义序列字符,如\n.

INSERT INTO pics(id, pics1) 
VALUES(1, LOAD_FILE('C:\\Users\\Vandana\\Desktop\\face\\my_image.jpg'));

请记住,它LOAD_FILE只能访问系统上的文件,并且运行数据库服务的用户/组具有读取权限。
有关secure_file_priv更多详细信息,请参阅。


推荐阅读