gpt4 book ai didi

oracle - Postgresql 中 Oracle 的 UTL_RAW.BIT_OR 的等价物

转载 作者:行者123 更新时间:2023-11-29 14:33:56 25 4
gpt4 key购买 nike

select utl_raw.bit_or('32','3') from dual;

Result : 33

我想知道如何在 postgresql 中获得类似的输出。请帮忙。

最佳答案

utl_raw.bit() 显然使用十六进制值。

Postgres 仅在 bit strings 上支持位操作这意味着需要将这些十六进制输入值转换为位字符串,然后才能使用内置函数。

基于 Erwin's answer要将十六进制转换为位,您可以这样做:

select (x'32'::bit(8) | x'03'::bit(8));

返回

00110011

请注意第二个值的前导 0x'3'::bit(8) 将返回 00110000 但带有前导 0 到位字符串的转换结果为 00000011。有关详细信息,请参阅链接的答案。

要取回十六进制数,我们必须先将其转换为整数,然后我们可以在其上使用to_hex():

select to_hex((x'32'::bit(8) | x'03'::bit(8))::int)

返回 33

关于oracle - Postgresql 中 Oracle 的 UTL_RAW.BIT_OR 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47774387/

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