你如何在 PostgreSQL 中编写十六进制文字?就像说我想要0xCC
,如果我这样做;
SELECT 0xCC;
xcc
-----
0
(1 row)
Run Code Online (Sandbox Code Playgroud)
所以 PostgreSQL 将 解析xcc
为别名。
Eva*_*oll 12
int
)您可以使用位串常量写入十六进制字节
SELECT x'CC'; -- same as b'11001100'
Run Code Online (Sandbox Code Playgroud)
这本质上与bit x'CC'
返回位字符串类型相同,但有一个可用的强制转换,int
因此您可以执行x'CC'::int * 5
如果字节序列是有效的 UTF-8 字符,您还可以使用E''
反斜杠转义序列(单反斜杠 \
)
SELECT E'\x41';
?column?
----------
A
(1 row)
Run Code Online (Sandbox Code Playgroud)
如果序列无效,您将收到错误消息
# SELECT E'\xCC';
ERROR: invalid byte sequence for encoding "UTF8": 0xcc
Run Code Online (Sandbox Code Playgroud)
bytea
-具体的。PostgreSQL 有一个可变长度的二进制数据类型,允许任意字节。这种类型称为bytea
. 您可以使用bytea 十六进制格式进入这种格式。在这我们要么使用,
\\
bytea
来自十六进制表示的强制转换。这里有两个语法,
SELECT bytea E'\\xDEADBEEF', bytea '\xDEADBEEF';
bytea | bytea
------------+------------
\xdeadbeef | \xdeadbeef
(1 row)
Run Code Online (Sandbox Code Playgroud)
如果您只需要存储大数字,而不是像bytea
我将pg_bignum
使用大数字的 openssl 实现检查哪些存储它们那样存储它们。
归档时间: |
|
查看次数: |
16342 次 |
最近记录: |