postgresql - 如何在 postgreSQL 中将 oracle 转换为_single_byte()
问题描述
甲骨文
select regexp_replace(TO_SINGLE_BYTE('A'),'[^ a-zA-Z]','!!',1,0,'im') from dual;
--> 结果:A
Postgres
select regexp_replace('A','[^ a-zA-Z]',' ','ig');
--> 结果:!!
问题:如何在 oracle 和 Postgres 之间获得相同的结果?我想得到像 Oracle 一样的结果。
我试图搜索将这个函数转换为 Postgres 的方法。但答案是 Postgres 中没有功能。
解决方案
该字母是 Unicode 代码点 U+FF21(全角拉丁大写字母 A),与您的模式不匹配。
使用该unaccent
函数将字符转换为常规字符A
:
CREATE EXTENSION unaccent;
SELECT ascii(unaccent('A'));
ascii
-------
65
(1 row)
推荐阅读
- javascript - 如何在 Javascript 的错误消息中包含表情符号?
- c# - 如何使用线程池
- javascript - 如何从第一页删除上一个按钮和从最后一页删除下一个按钮?
- mongodb - 阻止 Azure CosmosDB 的客户端应用创建新数据库
- database - 如何引用属于特定文档的 Firebase 服务器中的变量?
- c - C 中无法解释的溢出
- sql - 如何在 SQL 中实现双向排序?
- python - 满足条件后如何向多个客户端发送响应?
- silverstripe - Silverstripe - 全新安装无安装页面
- java - Android java - 为 2 个或更多视图分页器制作 1 个 ImageAdapter(目前为 2 个视图分页器提供 2 个适配器)