postgresql - 阻止 PostgreSQL 在多行中拆分值)?

标签 postgresql base64 encode psql

我正在使用 encode(foo::bytea, 'base64') 将二进制数据 (bytea) 数据类型转换为字符串,但输出被分成多行:

-[ RECORD 1 ]-+-----------------------------------------------------------------------
 req_id       | 132675
 b_string     | d4IF4jCCBd4GCSqGSIb3DQEHAqCCBc8wggXLAgEDMQ0wCwYJBAIBMIGYBgZngQgBAQGg+
              | gY0EgYowgYcCAQAwCwYJYIZIAQAwCwYJYIZIAWUDBAIHUwUdH0JybzpY2evf+v9Xg86b+
              | HSGTGYBIb/QwJQIBAgQg1M6/cJ+S39XY1lm43oenxJNLrYcc3hVw7fgwJQIBDgQgIAil+
              | 1JnYbdS0p4pK07kMkb/dbMcxryx6mqbLTzx+YJ6gggQbMI2gAwIBAgIESS7vwTAKBggq+
              | LUxRjUXbTgfGwUKOFwemsc4KXbsLZ13MkbNfAQ==

如何获取单个字符串?

更新:基于@LaurenzAlbe 的解决方案

只是为了完整起见,这就是我最终做的给了我想要的结果:

translate(encode(foo::bytea, 'base64'), E'\n', '')

最佳答案

psql 不会将您的字符串分成多行。

它是包含换行符(ASCII 10)的字符串,psql 可以准确显示它们。每行末尾的 +psql 告诉您该值在下一行继续的方式。

您可以使用未对齐模式(psql 选项-A)来摆脱+,但输出格式不太吸引人那么。

你可以去掉字符串中的换行符

SELECT translate(..., E'\n', '');

decode 将能够处理这样的字符串。

关于postgresql - 阻止 PostgreSQL 在多行中拆分值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710378/

相关文章:

Java Base64 Sun 到 JDK8

html - IE6 : How to get inline base64 images to work with IE6?

python - 'ascii' 编解码器无法在位置 * ord 不在范围 (128) 处对字符进行编码

Python Opencv 和 Sockets - 以 h264 编码的流视频

postgresql - 是否可以将现有数据库与 Strapi CMS 连接?

postgresql - 与 RDBMS 无关的事务复制子系统的注意事项

ios - 在 NSURLConnection 中使用 base64 字符串

python - 在 JSON 中编码嵌套的 python 对象

ruby-on-rails - 用户身份认证失败

performance - 了解 Postgres 9.5 中的 json_agg 性能