sql - 用单引号替换为双单引号在 PostgreSQL 12 中不起作用

标签 sql postgresql postgresql-11 postgresql-12

将单引号替换为双单引号在 PostgreSQL 12 中不能正常工作,在 PostgreSQL 11 中工作正常。

PostgreSQL 12

查询:SELECT REPLACE(patient.note,'''',''''''), * FROM patient

输出文本:Medicare Secondary Veteran�s Administration

PostgreSQL 11

查询:SELECT REPLACE(patient.note,'''',''''''), * FROM patient

输出文本:Medicare Secondary Veteran's Administration

如果您有任何解决方案,请告诉我。

最佳答案

这与您的替换无关,因为有问题的字符不是撇号' (U+0027),而是“右单引号”字符' (U+2019).

可能您连接到 PostgreSQL v12 的客户端编码设置不正确,因此字符被转换为不需要的内容。也可能在将角色转移到 v12 时出错。

要诊断这个,试试

SELECT note::bytea FROM patient;

如果这包含e28099,那么你数据库中的数据没有问题,问题是你的客户端编码。这假设数据库的服务器编码是 UTF8

关于sql - 用单引号替换为双单引号在 PostgreSQL 12 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58928769/

相关文章:

python - 如何使用python在sql中选择一长串id

postgresql - 使用 unaccent 使用 Npgsql 和 Entity Framework 查询 PostgreSQL

python - SqlAlchemy如何将这个类添加到数据库中

arrays - postgresql Json 路径功能

postgresql - pg_restore : [tar archiver] could not find header for file "toc.dat" in tar archive :- [PostgreSQL-11] pg admin 4

sql - 需要根据列值分配不同的JSON数据结构

sql - 我如何从两个不同的表详细信息中求和?

python - 缓存/重用数据库连接以供以后查看使用

mysql - 选择具有最新日期的行

sql - 如何将 CASE 构造与 VARIADIC 关键字集成作为 format() 的输入