相当于UTL_RAW.BIT_或Postgresql中的Oracle

相当于UTL_RAW.BIT_或Postgresql中的Oracle,oracle,postgresql,oracle11g,postgresql-9.4,Oracle,Postgresql,Oracle11g,Postgresql 9.4,我想知道如何在postgresql中获得类似的输出。请帮助。没有内置的功能 用你选择的程序语言来写应该不会太难。对于PL/pgSQL,可以使用get\u byte()和set\u byte()函数。没有内置函数 用你选择的程序语言来写应该不会太难。对于PL/pgSQL,您可以使用get_byte()和set_byte()函数。utl_raw.bit()显然使用十六进制值 Postgres仅支持位操作,这意味着需要将这些十六进制输入值转换为位字符串,然后可以使用内置函数 基于将十六进制转换为位,可

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

没有内置的功能


用你选择的程序语言来写应该不会太难。对于PL/pgSQL,可以使用
get\u byte()
set\u byte()
函数。

没有内置函数

用你选择的程序语言来写应该不会太难。对于PL/pgSQL,您可以使用
get_byte()
set_byte()
函数。

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

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

基于将十六进制转换为位,可以执行以下操作:

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

Result : 33
这是回报

select (x'32'::bit(8) | x'03'::bit(8));
注意第二个值的前导
0
<代码>x'3'::位(8)将返回
00110000
,但使用前导
0
转换为位字符串将导致
00000011
。有关这方面的更多详细信息,请参见链接答案

要返回十六进制数,我们必须首先将其转换为整数,然后可以对其使用
To_hex()

00110011
返回
33
utl\u raw.bit()
显然使用十六进制值

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

基于将十六进制转换为位,可以执行以下操作:

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

Result : 33
这是回报

select (x'32'::bit(8) | x'03'::bit(8));
注意第二个值的前导
0
<代码>x'3'::位(8)将返回
00110000
,但使用前导
0
转换为位字符串将导致
00000011
。有关这方面的更多详细信息,请参见链接答案

要返回十六进制数,我们必须首先将其转换为整数,然后可以对其使用
To_hex()

00110011

返回
33

您确定它的33?。@VaoTsun:看起来像是十六进制数是-看起来像是soare您确定它的33?。@VaoTsun:看起来像是十六进制数是-看起来是这样
选择到_hex((x'32'| x'03')::int)在(16)上的提示后得到了相同的结果-谢谢,我正在尝试对两个十六进制进行位或位运算,如to_hex()| to_hex()。谢谢-一匹没有名字的马选择十六进制((x'32'| x'03')::int)在(16)上的提示后得到了相同的结果-谢谢,我正在尝试对两个十六进制进行位或位运算,如to_hex()| to_hex()。谢谢-一匹没有名字的马