【问题标题】:postgresql convert bytea to integer typepostgresql 将 bytea 转换为整数类型
【发布时间】:2020-04-01 07:31:39
【问题描述】:

一个 PostgreSQL 表有一个 bytea 类型的列。此列中插入了一些整数和字符串值。

有没有办法使用 psql 取回原始整数/字符串值?

bitnami_airflow=> select value from xcom where key='warehouse_ids_count'  limit 5;
       value
--------------------
 \x80034d926b2e
 \x80034a74e9dd002e
 \x80034dc6072e
 \x80034a6c1701002e
 \x80034d392d2e
(5 rows)

【问题讨论】:

  • 能不能也加几条insert语句?另外,永远不要发布代码卡盘的图像,而是将代码块本身作为text
  • 另外,数据的编码是什么? Hex 80 看起来不像是任何编码中的数字。
  • psql的SHOW SERVER_ENCODING的输出是UTF8
  • 尝试读取气流表 xcom,插入的值是简单的 int 和字符串,例如。 111、“error_found”、“s3_location”等
  • @AmritJangid 这看起来像pickled python objects。从理论上讲,您可以对格式进行逆向工程并在 PL/SQL 中重新实现 unpickling,但我建议改用 Python。

标签: postgresql pickle plpgsql


【解决方案1】:

气流配置有一个用于酸洗 XCom 值的选项(在气流.cfg 中),默认情况下它是启用的。

enable_xcom_pickling = True

禁用酸洗后,可以将值作为普通字符串获取。

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 2013-07-06
    • 2018-03-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多