上一主题: 空字符串下一主题: 正则表达式 SQL 语句规范化程序示例


正则表达式 SQL 语句规范化程序

SQL 代理附带了一个扩展,该扩展根据可配置的正则表达式 (regex) 对 SQL 语句进行规范化。 该文件 (RegexNormalizerExtension.jar) 位于 <Agent_Home>/wily/core/ext 目录中。

有关如何使用正则表达式 SQL 语句规范化程序的示例,请参阅正则表达式 SQL 语句规范化程序示例

应用正则表达式扩展

  1. 打开 IntroscopeAgent.profile
  2. 找到并设置以下属性:

    如果 introscope.agent.sqlagent.normalizer.regex.matchFallThroughfalse,则 SQL 会根据 key1 正则表达式进行规范化。该正则表达式的输出将为 Select * from X where B。 将返回此 SQL。

    如果 introscope.agent.sqlagent.normalizer.regex.matchFallThroughtrue,则 SQL 首先针对 key1 正则表达式进行规范化。 该正则表达式的输出为 Select * from X where B。 然后,此输出将被送入 key2 正则表达式。key2 正则表达式的输出为 Select * from X where Y。 将返回该 SQL。

    注意:要启用正则表达式扩展,此属性不是必需的。

    如果 introscope.agent.sqlagent.normalizer.regex.key1.replaceAlfalse,将会生成规范化的 SQL 语句:Select * from X where A like Z

    如果 introscope.agent.sqlagent.normalizer.regex.key1.replaceAltrue,将生成一个规范化 SQL 语句:Select * from X where X like Z

    默认值为 false。 要启用正则表达式扩展,此属性不是必需的。

    注意:如果没有一个正则表达式模式与输入的 SQL 匹配,RegexNormalizer 将返回空字符串。 然后,语句规范化程序将使用默认的规范化方案。

  3. 保存 IntroscopeAgent.profile

重要信息! 上面列出的所有属性均为热属性,也就是说,保存 IntroscopeAgent.profile 之后,对这些属性所做的更改会立即生效。