【发布时间】:2012-04-16 18:00:04
【问题描述】:
我正在尝试了解如何在 postgresql (v 8.3) 中处理二进制数据。 假设我有一张下表
Table "public.message"
Column | Type | Modifiers
---------+---------+-----------
id | integer |
message | bytea |
我想以这种格式在消息字段中存储一个数据包:
版本(1字节),标识符(1字节),纪元(4字节)
我想将此数据打包到消息字段中。假设我有版本=1、标识符=8 和纪元=123456。我如何将这些数据打包到消息字段中?如何将我的整数值转换为十六进制.. 或八进制?
我还需要取回消息并解析它。我正在查看get_byte 函数,除非有其他方法可以解析出数据..
谢谢!
【问题讨论】:
-
有什么特殊原因要将这些值打包到 bytea 列中吗?为什么不只是三个数字列?如果你真的想这样做,你最好按照@DanielVérité 在他的回答中的建议,用 Python 或 Perl 等外部语言构建一个函数。
-
原因是我正在处理将消息字段作为 bytea 的现有架构,这就是我必须使用的。这真的让我感到惊讶,在 pg 中没有对此的支持。我知道包函数,例如在 python 中。
标签: postgresql bytea