首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么字符代表postgresql中的新行?

问什么字符代表postgresql中的新行?
EN

Stack Overflow用户
提问于 2013-09-10 06:15:51
回答 2查看 4.6K关注 0票数 2

我从mySQL导出数据并将它们导入PostgreSQL。一切都很顺利,除了一件事。

mySQL中的许多文本字段都有换行符,现在它们作为\r\n导入到PostgreSQL中。在PostgreSQL中,什么字符代表新行?

我在C#程序中使用来自C# db的数据。它正确地显示了新的行。现在它在文本中显示\r\n。

我试着用\n或\n替换所有\r\n。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 13:07:42

如果您已经导入了错误的数据,并且假设所有数据都是转义的,那么您可以按如下方式更新这些值:

代码语言:javascript
复制
UPDATE your_table
SET your_column = 
    replace(replace(replace(replace(your_column,
        '\r', E'\r'),
        '\n', E'\n'),
        '\t', E'\t'),
        '\\', '\');

注意,这可能导致一些错误,例如,如果它真的应该是\r (而不是转义)。

PostgreSQL遵循SQL,这意味着字符串的唯一转义是两个单引号,例如,'I''m a rock star'将生成I'm a rock star,但'I\'m a rock star'将导致错误,因为反斜杠不是转义字符,因此在m之后关闭了字符串。如果(1)在字符串之前使用字母E (在示例中),这会导致反斜杠转义(与往常一样);或者(2)如果您将GUC参数standard_conforming_strings设置为off (不建议这样做,但您可以在导入期间这样做,这取决于该进程的工作方式),则可以打破此规则。

票数 7
EN

Stack Overflow用户

发布于 2013-09-10 06:26:39

新的行字符将根据其来自何处或显示在何处(Windows/Web)而改变。

关于删除新行字符,请看一下this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18711872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档