是否可以在PostgreSQL 8.4中将多个整数(int4
)值连接到bytea值?
例如:
5::int4 || 1::int4
假设有一个小端机器,应该导致带有(0x05 0x00 0x00 0x00 0x01 0x00 0x00 0x00)
的bytea值。
答案 0 :(得分:2)
好吧,int4send
会将int4转换为bytea,但我怀疑它会一直使用网络排序。
即:
steve@steve@[local] =# select int4send(3);
int4send
------------
\x00000003
amd64机器上的事件。
答案 1 :(得分:1)
可以使用select byteain(bit_out(5::bit(32) || 1::bit(32)))
或select int4send(5)||int4send(1)
进行间接转换,从而产生0000000000000000000000000000010100000000000000000000000000000001
。
您还可以使用binary string functions转换为所需的编码。有关类似问题的解决方案,请参阅pgsql-general列表中的Maarten Foqué's answer。您应该能够简单地连接其函数或类似函数中的结果bytea
值(但将其标记为stable而不是volatile)。