【问题标题】:Insert hex value in escape format (bytea)以转义格式插入十六进制值 (bytea)
【发布时间】:2014-11-03 07:59:23
【问题描述】:

如何插入十六进制值,如 \x320000000d2f2100 以转义格式进入 bytea 字段?

bytea_output 设置为转义

【问题讨论】:

    标签: postgresql-9.3 bytea


    【解决方案1】:

    bytea_output 设置与 服务器如何解释 bytea 无关,只与 发送到客户端的方式有关。

    是否要插入文字字符串 \x320000000d2f2100(作为 7 位 ascii),即生成字节 0x5c 0x78 0x33 0x32 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x64 0x32 0x66 0x32 0x31 0x30 0x30

    如果是这样,请转义反斜杠,如 escape 格式字节文字的语法中所述。

    regress=> SELECT BYTEA '\\x320000000d2f2100';
                     bytea                  
    ----------------------------------------
     \x5c7833323030303030303064326632313030
    (1 row)
    

    您要插入字节0x32 0x00 0x00 0x00 0x0d 0x2f 0x21 0x00,即十六进制值吗?如果是这样,不要转义反斜杠。 bytea_output 的设置无关紧要。

    regress=> SELECT BYTEA '\x320000000d2f2100';
           bytea        
    --------------------
     \x320000000d2f2100
    (1 row)
    

    【讨论】:

    • 我需要第二个选项,已经插入(更新了1行)像 set data=quote_literal('\x320000000d2f2100')::bytea db中存储的结果和SELECT BYTEA '\x320000000d2f2100'一样: 2\000\000\000\015/!\000 ,听起来还可以。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 2018-07-26
    • 2011-03-08
    • 1970-01-01
    • 2010-10-15
    • 2019-08-04
    • 2022-07-08
    • 1970-01-01
    相关资源
    最近更新 更多