转义制表符 PostgreSQL

Posted

技术标签:

【中文标题】转义制表符 PostgreSQL【英文标题】:Escape tab character PostgreSQL 【发布时间】:2015-04-28 07:29:20 【问题描述】:

我有一个 varchar 字段,我正在将此字段迁移到 JSON 类型字段。一些数据有制表符,当尝试插入新的 JSON 字段时,它告诉我这个错误:DETAIL: Character with value 0x09 must be escape.

我正在尝试像这样转义和删除制表符,但没有成功:

v_text:=REPLACE(text, '\x09', '');

 v_text:=REPLACE(text, '0x09', '');

如何删除文本中的所有制表符? 谢谢

【问题讨论】:

【参考方案1】:

您可以尝试使用正则表达式:

select regexp_replace(text, '\t', '', 'g');

【讨论】:

它仍然在告诉我:DETAIL: Character with value 0x09 must be escaped. @Za7pi 你能提供你试图操纵的文本值吗(或者至少是其中有问题的部分)? 我要在开头和结尾加单引号:'xxxx xxxx x x x' 最后一试,最后一个a不在文中:'xxxx xxxx x x x a' 如果我在此处编辑此文本,我可以看到空格或制表符,但您看不到它【参考方案2】:

只需将制表符按原样放在replace 中(SO 格式将制表符替换为空格,因此只需将制表符插入到它显示[tab] 的位置):

SELECT replace('"a[tab]"', '[tab]', '')::json;

【讨论】:

它不工作。我正在这样做: v_text:=REPLACE(text, '[tab]', '');其中 text 是一个 varchar 字段 @Za7pi 无法重现您的错误。 v json:=REPLACE('"a "'::varchar, ' ', ''); 为我工作。 仍然错误:细节:必须转义值为 0x09 的字符

以上是关于转义制表符 PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章

C语言——转义字符

python常用转义字符串总结:各种字符转义的不同如何取消转义字符效果?

Python转义字符

转义字符

求C#中需要转义的特殊符号(完全)列表,

Python基础3—常用转义字符