postgresql - 阻止 PostgreSQL 在多行中拆分值?
问题描述
我正在使用将二进制数据(bytea)数据类型转换为字符串,encode(foo::bytea, 'base64')
但输出被分成多行:
-[ 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
option -A
)来摆脱+
,但输出格式则不那么吸引人。
你可以去掉字符串中的换行符
SELECT translate(..., E'\n', '');
decode
将能够处理这样的字符串。
推荐阅读
- android - 为 Flutter 项目添加 Android 运行/调试配置
- text-to-speech - 关于如何保存 runAndWait() 产生的声音的任何想法?
- python - 如何为 2.7 和 3.x 打包 python 模块?
- c# - c# 使用 wmi 连接到远程需要 /etc/hosts
- java - 即使我在android中的给定时间间隔内请求更新,融合位置api的OnLocationResult也只调用一次
- sql - Orace SQL - 嵌套 CASE 语句
- regex - RegEx - 匹配除“单个大写字母”前面的句点之外的所有句点
- tableau-api - 从财政年度更改为日历年度
- java - Spring没有在测试中调用@Bean方法
- angularjs - 保存动态创建的输入值