Oracle 和 Sql 服务器在参数化字符串中使用不同的参数前缀。
sql使用@p1
ORA使用:p1
我想在我的 SQL 中使用@
如果使用 ORA 数据库:
字符应替换为@
.
你能帮我创建正则表达式吗?
下面是一些 SQL 示例:
update test_table set text = :p1 where text = 'jana:klara' or some_value = :value or info = 'two'
可以找到类似的问题和替代解决方案here https://stackoverflow.com/questions/5295699/dbcommand-and-parameterized-sql-oracle-vs-sql-server.
您可以使用此模式进行搜索:
(?<=\W):(?=\w+)
例如:
string output = Regex.Replace(input, @"(?<=\W):(?=\w+)", "@");
该模式的含义如下:
-
(?<=\W)
- The (?<= ... )
语法声明了积极的后视。换句话说,任何匹配项之前都必须有后向查找的内容。在本例中,它声明匹配项前面必须有一个非单词字符。
-
:
- 仅匹配冒号
-
(?=\w+)
- The (?= ... )
语法声明了积极的前瞻。换句话说,任何匹配项后面都必须跟有前瞻的内容。在本例中,它声明匹配项后面必须跟一个或多个单词字符。
See the .
我想不出为什么参数会成为输入字符串中的第一个参数,但如果可能的话,请将其更改为(?<=^|\W):(?=\w+)
也会处理这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)