阻止 PostgreSQL 在多行中拆分值)?
Stop PostgreSQL from spliting value(s) in multiple lines?
我正在使用 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
就能处理这样的字符串。
我正在使用 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
就能处理这样的字符串。