首页 > 解决方案 > 如何在 edb 中使用相同的 REGEXP_REPLACE(Oracle sql)

问题描述

我正在从 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 行:SET customer = RTRIM (LTRIM (REGEXP_REPLACE (customer, '... ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。SQL 状态:42883 字符:52

标签: oracleenterprisedb

解决方案


PostgreSQL 的实现regexp_replace()不同于 Oracle 的。文档中提到的函数签名是regexp_replace(source, pattern, replacement [, flags ])

调用regexp_replace(account_no,'[A-Y]','','gi')将相当于您想要调用regexp_replace(account_no,'[A-Y]','',1,0,'i')


推荐阅读