代码之家  ›  专栏  ›  技术社区  ›  Thomas Carlton

如何在Oracle中将十六进制值转换为Base64?

  •  0
  • Thomas Carlton  · 技术社区  · 4 年前

    我有以下十六进制字符串:

    5B31E7C4931C2F62A4EB06573B3D4D4B7D96D2AAD05F9D626664CEB53023F1020F38B4399D98A2F280DC3606666B966A1B6878D2559044B2FC583FDFAB680714
    

    我正在尝试将其转换为 Base64 使用Oracle。

    根据这个计算器: https://base64.guru/converter/encode/hex 结果应该是

    WzHnxJMcL2Kk6wZXOz1NS32W0qrQX51iZmTOtTAj8QIPOLQ5nZii8oDcNgZma5ZqG2h40lWQRLL8WD/fq2gHFA==
    

    这是正确的。

    我尝试了以下计算,但没有返回正确的值:

    UTL_ENCODE.BASE64_ENCODE(HEXTORAW(Value))
    

    有人知道如何在Oracle中实现这一点吗?

    谢谢 干杯

    1 回复  |  直到 4 年前
        1
  •  1
  •   Gary Myers    4 年前

    UTL_ENCODE.BASE64_ENCODE返回一个RAW。你想把它变成字符串

    utl_raw.cast_to_varchar2(UTL_ENCODE.BASE64_ENCODE('5B31E7C4931C2F62A4EB06573B3D4D4B7D96D2AAD05F9D626664CEB53023F1020F38B4399D98A2F280DC3606666B966A1B6878D2559044B2FC583FDFAB680714'))