gpt4 book ai didi

postgresql - lo_export 在 PostgreSQL 9.3 中不存在

转载 作者:行者123 更新时间:2023-11-29 12:26:29 31 4
gpt4 key购买 nike

我以 postgres 用户身份登录,并尝试使用以下查询从 Postgresql 9.3 数据库导出 blob:

select lo_export(imgs.rast, '/tmp/img.tif') from imgs where rid = 1;

但是我得到这个错误:

ERROR:  function lo_export(bytea, unknown) does not exist

我需要安装 lo_export 功能吗?如果是,怎么办?

最佳答案

您正在尝试使用一个函数,该函数用于导出一个大对象,它不同于 blob(Postgres 中的 bytea 列类型)。

没有将 bytea 导出到文件的库函数。您只需在客户端程序中使用类似(Python 示例)的内容:

cursor = conn.execute("select rast from img were rid=%(rid)s", {"rid":1})
result = cursor.fetchone()
with tempfile.NamedTemporaryFile(mode="wb", suffix=".tif", delete=False) as f:
f.write(result[0])
result_filename = f.name

请记住,这会多次将整个数据读取到内存中,因此如果数据可能相当大,您可以更喜欢使用 substring(rast from %(chunk_start)s for %(chunk_size) s)。并使用 set storage external 确保该列在外部保存。

关于postgresql - lo_export 在 PostgreSQL 9.3 中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33848101/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com