如何在 edb 中使用相同的 REGEXP_REPLACE(Oracle sql)
Posted
技术标签:
【中文标题】如何在 edb 中使用相同的 REGEXP_REPLACE(Oracle sql)【英文标题】:How to use the same equivalent of REGEXP_REPLACE(Oracle sql) in edb 【发布时间】:2021-08-19 01:51:24 【问题描述】:我正在从 oracle sql 迁移到 edb,并想转换正则表达式替换,但我无法将所有约束带到 edb 等效项。你能帮忙吗?
SET account_no = RTRIM (LTRIM (REGEXP_REPLACE (account_no, '[A-Y]', '', 1, 0, 'i'), ' '), ' ')
如何将位置(1)、出现(0)和匹配参数('i')带入 edb。如果我使用相同的,我会收到以下错误
错误:函数 regexp_replace(字符变化,未知,未知,整数,整数,未知)不存在 第 2 行:设置客户 = RTRIM(LTRIM(REGEXP_REPLACE(客户,'... ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。 SQL 状态:42883 字符:52
【问题讨论】:
【参考方案1】:PostgreSQL 对regexp_replace()
的实现与Oracle 不同。函数签名as mentioned in the documentation 是regexp_replace(source, pattern, replacement [, flags ])
调用regexp_replace(account_no,'[A-Y]','','gi')
将等同于您想要调用regexp_replace(account_no,'[A-Y]','',1,0,'i')
【讨论】:
谢谢。它有效,也感谢您的解释。以上是关于如何在 edb 中使用相同的 REGEXP_REPLACE(Oracle sql)的主要内容,如果未能解决你的问题,请参考以下文章
获取Exchange中所以数据库名称-数据库EDB大小-用户数量