[英]What is the postgresql equivalent of DUMP function in Oracle?
Oracle 中的转储function 显示数据的内部表示:
DUMP 返回一个 VARCHAR2 值,其中包含数据类型代码、字节长度和 expr 的内部表示
例如:
SELECT DUMP(cast(1 as number ))
2 FROM DUAL;
DUMP(CAST(1ASNUMBER))
--------------------------------------------------------------------------------
Typ=2 Len=2: 193,2
SQL> SELECT DUMP(cast(1.000001 as number ))
2 FROM DUAL;
DUMP(CAST(1.000001ASNUMBER))
--------------------------------------------------------------------------------
Typ=2 Len=5: 193,2,1,1,2
它表明第一个示例使用 2 个字节进行存储,第二个示例使用 5 个字节进行存储。
我想 PostgreSQL 中类似的 function 是pg_typeof但它只返回类型名称而没有有关字节使用的信息:
SELECT pg_typeof(33);
pg_typeof
integer(1排)
有人知道 PostgreSQL 中是否有等效的 function 吗?
我不会说 PostgreSQL。
在 Postgres 中实现 Oracle 数据库中缺少(或行为不同)的一些功能
此外,它还提到了dump
function
dump (anyexpr [, int])
:返回一个文本值,包括数据类型代码、字节长度和表达式的内部表示
其中一个示例如下所示:
postgres=# select pg_catalog.dump('Pavel Stehule',10);
dump
-------------------------------------------------------------------------
Typ=25 Len=17: 68,0,0,0,80,97,118,101,108,32,83,116,101,104,117,108,101
(1 row)
对我来说,它看起来像 Oracle 的dump
:
SQL> select dump('Pavel Stehule') result from dual;
RESULT
--------------------------------------------------------------
Typ=96 Len=13: 80,97,118,101,108,32,83,116,101,104,117,108,101
SQL>
我想你必须访问 GitHub 并安装 package 看看你是否可以使用它。
它不是完全等价的,但是如果您想找出用于在 PostgreSQL 中编码字符串的字节值,您可以简单地将值转换为bytea
,这将为您提供十六进制的字节:
SELECT CAST ('schön' AS bytea);
这适用于字符串,但不适用于数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.