SQL ステートメントでバインド変数 (コロンで始まり、テキストを含む) を検索できるようにしたいと考えています。
SELECT *
FROM TABLE
WHERE TABLE_UID = :TABUID AND TABLE_TEXT = :TEXT
私は、この正規表現がバインド変数を見つけるために機能することを発見しました:
Regex reg = new Regex(":[\\w]*",
RegexOptions.Multiline & RegexOptions.IgnoreCase);
foreach (Match m in reg.Matches(sql))
{
bindVar.Add(m.Value);
}
私が理解できないのは、引用符で囲まれた潜在的なバインド変数を無視する方法です:
SELECT *
FROM TABLE
WHERE TABLE_UID = :TABUID AND TABLE_TEXT = TO_DATE(:TEXT, 'hh:mi:ss')
:mi & :ss は正規表現で一致してはなりません。