PostgreSQL:从OID到Bytea
我们决定从PostgreSQL 9.0数据库中的
OID
s转移到使用bytea
列。我正在尝试将数据从一列复制到另一列,但我无法找出正确的查询。这是我最接近的:
update user as thistable set pkcs_as_bytea = (select array_agg(mylargeobject.data) from
(select * from pg_largeobject where loid = thistable.pkcs12_as_oid order by pageno) as mylargeobject) where thistable.pkcs12 is not null
这给了我以下错误消息:
ERROR: column "pkcs_as_bytea" is of type bytea but expression is of type bytea[]
什么是正确的查询呢?
没有找到相关结果
已邀请:
4 个回复
卧沫
组合,如:
这段代码有问题,
函数需要第二个参数作为读取的最大字节数(我上面使用的
参数),所以如果你的数据很大,你应该使用一个非常大的数字。否则,将在这么多字节之后修剪内容,并且您不会将所有数据都返回到
字段。 如果要从OID转换为文本字段,还应使用转换函数,如:
(
是打开模式的标志,
inhexa,表示“打开只读”)
辟官陡板休
香腔弥胯瓤
这样的东西,但在这种情况下,你需要一个
来连接所有部分。您必须自己创建此函数,或在应用程序逻辑中处理此函数。
缉康怪