首页 > 解决方案 > 如何在词法上检测 sql SELECT 查询?

问题描述

我想检测任何 sql 字符串是否需要基于 a 的返回值SELECT

boolean isSelectStatement(sql) {
   return !sql.startsWith(sql, "INSERT"
         && !sql.startsWith(sql, "UPDATE")
         && !sql.startsWith("DELETE");
}

因此,以下内容将被检测为 select 语句,这是正确的:

DECLARE @request_id = '10'; SELECT @request_id as foo;

因此,您认为检测任何非 SELECT 语句就足够了吗?是否有任何定义显示任何类型的可能的 SELECT 语句?甚至可以确定是否选择 sql 的库?

标签: javasql

解决方案


推荐阅读