我正试图插入postgres数据库。 这是查询
INSERT INTO public.tblcast(
castname, castimage)
VALUES ('Henry Cavill',bytea('E:\Cast\henry.jpg'));
但它显示了一个错误
ERROR: invalid input syntax for type bytea
LINE 3: VALUES ('Henry Cavill',bytea('E:\Cast\henry.jpg'));
^
SQL state: 22P02
Character: 81ERROR: invalid input syntax for type bytea
列castimage的数据类型为bytea。你知道吗
编辑
我已经有一段时间没有回答这个问题了,但我想我弄错了,虽然提问者似乎对答案很满意,但我相信它需要一些评论。感谢丹尼尔·维瑞特!你知道吗
低成本导入
使用^{} 可以使用绝对路径导入文件,但它会返回一个类型为^{} 的对象,因此需要更改列数据类型,这也是stud3nt在另一个答案中提出的。你知道吗
如果您没有在导入之前将文件放入服务器的特权(像我们大多数人一样),您可以从控制台使用带有^{} 的
\lo_import
工具:loèu出口:
pg\u read\u文件(不太灵活):
这个^{} 提供了在服务器中读取文件的可能性。但是,它仅限于数据目录路径。如果您想知道它在系统中的位置,请尝试以下命令:
下面是一个如何使用它的方法——正如Mike Pur的回答所示:
原始答案:
文件路径中有
\
。用E
转义字符串就可以了。你知道吗使用pg\u read\u文件
用
lo_import('E:\Cast\henry.jpg')
代替bytea('E:\Cast\henry.jpg')
相关问题 更多 >
编程相关推荐