【发布时间】:2015-07-06 08:46:46
【问题描述】:
我在 oracle DB (Pl/sql) 方面没有编程经验我需要编写一个函数来转义所有这些字符 "(双引号):(冒号)\(反斜杠)给定的字符串。
我想我可以使用替换功能将所有这些字符" 替换为\",\ 与\\,: 与\:,但我不知道一种有效的方法它。
【问题讨论】:
标签: regex oracle replace plsql oracle10g
我在 oracle DB (Pl/sql) 方面没有编程经验我需要编写一个函数来转义所有这些字符 "(双引号):(冒号)\(反斜杠)给定的字符串。
我想我可以使用替换功能将所有这些字符" 替换为\",\ 与\\,: 与\:,但我不知道一种有效的方法它。
【问题讨论】:
标签: regex oracle replace plsql oracle10g
你可以使用REGEXP_REPLACE:
SELECT REGEXP_REPLACE ( '\' || ':"', '([\:"])', '\\\1', 1, 0) from dual;
返回:
\\\:\"
第一个参数'\' || ':"' 是要转义的输入字符串的代表。第二个参数'([\:"])' 是一个正则表达式,匹配你要转义的字符。第三个参数'\\\1' 是替换字符串:反斜杠和捕获组的内容。第四个参数1是字符串中开始替换的起始点; Oracle 将字符串中的第一个字符计为第一个字符。第五个参数是要替换您的模式的哪个出现; 0 表示全部替换。
【讨论】: