繁体   English   中英

Oracle 中的 DUMP function 的 postgresql 等效项是什么?

[英]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。

但是, Oracle 功能页面说有Orafce

在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM