gpt4 book ai didi

c# - 带正则表达式的参数化 SQL、ORACLE 与 SQL Server

转载 作者:行者123 更新时间:2023-11-30 12:24:00 34 4
gpt4 key购买 nike

Oracle 和 Sql 服务器对参数化字符串中的参数使用不同的前缀。

使用 @p1 的 SQL

ORA 使用 :p1

我想在我的 SQL 中使用 @ 并且如果使用 ORA 数据库,所有 : 字符应该替换为 @ .

你能帮我创建正则表达式吗?

这是一些示例 SQL:

更新 test_table set text = :p1 where text = 'jana:klara' or some_value = :value or info = 'two'

可以找到类似的问题和替代解决方案here .

最佳答案

您可以使用此模式进行搜索:

(?<=\W):(?=\w+)

例如:

string output = Regex.Replace(input, @"(?<=\W):(?=\w+)", "@");

模式的含义如下:

  • (?<=\W) - (?<= ... )语法声明了一个积极的后视。换句话说,任何匹配之前都必须有后视的内容。在本例中,它声明匹配项前面必须有一个非单词字符。
  • : - 只匹配冒号
  • (?=\w+) - (?= ... )语法声明了一个积极的前瞻。换句话说,任何匹配都必须跟在前瞻的内容之后。在这种情况下,它声明匹配后必须跟一个或多个单词字符。

参见 online demo .

我想不出为什么参数会成为输入字符串中的第一件事,但如果可能的话,将其更改为 (?<=^|\W):(?=\w+)也会处理这种情况。

关于c# - 带正则表达式的参数化 SQL、ORACLE 与 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063018/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com