如何在Oracle中使用regex_replace方法在特定字符串上添加字符串
我正在尝试向索引名和表名添加字符串“$”,如下所示。我需要在SELECT语句中使用方法“regexp\u replace”。 选择regexp\u replace(输入字符串……) @输入如何在Oracle中使用regex_replace方法在特定字符串上添加字符串,regex,oracle,regexp-replace,Regex,Oracle,Regexp Replace,我正在尝试向索引名和表名添加字符串“$”,如下所示。我需要在SELECT语句中使用方法“regexp\u replace”。 选择regexp\u replace(输入字符串……) @输入 CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO") @期望输出 CREATE UNIQUE INDEX "SCOTT"."PK_EMP_$" ON "SCOTT"."EMP_$" ("EMP_NO") 你能帮我建立一个正则表达式
CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")
@期望输出
CREATE UNIQUE INDEX "SCOTT"."PK_EMP_$" ON "SCOTT"."EMP_$" ("EMP_NO")
你能帮我建立一个正则表达式吗?非常简单的解决方案是使用以下模式:
(.*)(" ON ".*)(" \(.*)
使用以下替换字符串:
\1_$\2_$\3
该模式的工作原理是,在需要插入\u$
标记的位置拆分输入,然后将其合并,将标记放回拆分输入的位置:
创建唯一索引“SCOTT”。“SCOTT”上的“PK_EMP”
,“EMP
”(“EMP_NO”)
完整选择查询如下所示:
SELECT REGEXP_REPLACE(
'CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMP_NO")',
'(.*)(" ON ".*)(" \(.*)',
'\1_$\2_$\3'
) RX
FROM dual;
在多列上有索引吗?