gpt4 book ai didi

c# - 什么字符代表 postgresql 中的新行?

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:22 25 4
gpt4 key购买 nike

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

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

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

我试图用\n 或\n 替换所有\r\n。什么都没用。

最佳答案

如果您已经将其导入错误,并且假设所有数据都已转义,您可以像这样更新值:

UPDATE your_table
SET your_column =
replace(replace(replace(replace(your_column,
'\r', E'\r'),
'\n', E'\n'),
'\t', E'\t'),
'\\', '\');

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

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

关于c# - 什么字符代表 postgresql 中的新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com