我目前正在尝试做的事情:
我正在使用一个以 Postgresql 作为后端数据库的软件。该软件提供了一个 API,该 API 使用 Web 服务与软件/数据库进行通信。我正在尝试通过 api 将图像插入数据库,通常应该是 BLOB,因为 postgresql 不支持,所以我使用 postgresql-contrib 包创建了 lo 扩展。现在,实际的大对象保存在它自己的表中,当前表只保存对该对象的引用,但是 API 不考虑这一点。我目前将图像列的数据类型作为 BYTEA,但我收到一条错误消息,提示“列‘img’的类型为 bytea,但表达式的类型为 lo;”。由于插入被封装在 Web 服务的后端,因此我在 API 中无能为力。
TL;博士:
软件 API 期望将大对象 (BLOB) 放入数据库。如果数据库识别出 BLOB 数据类型,则应该可以无缝工作。我已经在 postgres 中设置了 lo 扩展。目前我将列数据类型设置为 bytea,但出现此错误:“列‘img’的类型为 bytea,但表达式的类型为 lo;”。
我如何存储lo's?
:::我正在使用 postgresql 9.1
我让它工作了。删除表后,我忘记重新创建 lo 扩展名,这就是它无法识别数据类型的原因。