我在oracle DB(Pl / sql)中没有编程经验我需要编写一个函数,我需要转义所有这些字符"
(双引号):
(冒号){{1给定字符串中的(反斜杠)。
我想我可以使用替换功能将所有这些字符\
替换为"
,\"
替换为\
,\\
替换为:
但我不知道一种有效的方法。
答案 0 :(得分:3)
您可以使用REGEXP_REPLACE:
SELECT REGEXP_REPLACE ( '\' || ':"', '([\:"])', '\\\1', 1, 0) from dual;
返回:
\\\:\"
第一个参数'\' || ':"'
是您的输入字符串转义的替代品。第二个参数'([\:"])'
是一个正则表达式,用于匹配要转义的字符。第三个参数'\\\1'
是替换字符串:反斜杠和捕获组的内容。第四个参数1
是字符串中要开始替换的起点; Oracle将字符串中的第一个字符计为第一个字符。第五个参数是要替换的模式的出现; 0
表示全部替换它们。