如何在 Oracle 中使用 regex_replace 方法在特定字符串上添加字符串
How to add a string on a specific string by using regex_replace method in Oracle
我正在尝试将字符串“_$”添加到索引名称和 table 名称,如下所示。我需要在 SELECT 语句中使用方法 'regexp_replace'。
selectregexp_replace(input_string......)
@输入
CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")
@期望输出
CREATE UNIQUE INDEX "SCOTT"."PK_EMP_$" ON "SCOTT"."EMP_$" ("EMP_NO")
你能帮我建立一个正则表达式吗?
相当粗暴的解决方案将使用以下模式:
(.*)(" ON ".*)(" \(.*)
用以下替换字符串:
_$_$
该模式的工作原理是在您需要插入 _$
标记的地方拆分输入,然后将其重新加入,将标记放在我们拆分输入的位置:
CREATE UNIQUE INDEX "SCOTT"."PK_EMP
|" ON "SCOTT"."EMP
|" ("EMP_NO")
完整的 SELECT 查询如下所示:
SELECT REGEXP_REPLACE(
'CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")',
'(.*)(" ON ".*)(" \(.*)',
'_$_$'
) RX
FROM dual;
我正在尝试将字符串“_$”添加到索引名称和 table 名称,如下所示。我需要在 SELECT 语句中使用方法 'regexp_replace'。 selectregexp_replace(input_string......)
@输入
CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")
@期望输出
CREATE UNIQUE INDEX "SCOTT"."PK_EMP_$" ON "SCOTT"."EMP_$" ("EMP_NO")
你能帮我建立一个正则表达式吗?
相当粗暴的解决方案将使用以下模式:
(.*)(" ON ".*)(" \(.*)
用以下替换字符串:
_$_$
该模式的工作原理是在您需要插入 _$
标记的地方拆分输入,然后将其重新加入,将标记放在我们拆分输入的位置:
CREATE UNIQUE INDEX "SCOTT"."PK_EMP
|" ON "SCOTT"."EMP
|" ("EMP_NO")
完整的 SELECT 查询如下所示:
SELECT REGEXP_REPLACE(
'CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")',
'(.*)(" ON ".*)(" \(.*)',
'_$_$'
) RX
FROM dual;