当前位置:首页 » 编程语言 » 校验sql语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

校验sql语句

发布时间: 2022-01-29 06:36:13

⑴ C#中验证sql语句是否正确(不执行语句)

检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。 SET PARSEONLY { ON | OFF } 当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。 SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。 在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。 SET NOEXEC (Transact-SQL) 编译每个查询但不执行查询。 SET NOEXEC { ON | OFF } 当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。 SQL Server 中的语句执行包含两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理中的部分语句。 SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。 SET PARSEONLY的代码:复制代码代码如下:public bool ValidateSQL(string sql){bool bResult; SqlCommand cmd = _conn.CreateCommand(); cmd.CommandText = "SET PARSEONLY ON"; cmd.ExecuteNonQuery();try{cmd.CommandText = sql; cmd.ExecuteNonQuery();

⑵ 在pl/sql中关于用sql语句校验的问题

创建一个名叫zcjs_upload的function函数,两个参数类型分别为numeric类型;
测试function函数的时候返回结果正确.当使用如上sql语句执行的时候返回结果错误.

⑶ 如何验证SQL语句的正确性

declare @testsql nvarchar(max),
@result int
改成:
declare @testsql nvarchar(max)
declare @result int

⑷ 判断字符串是否是sql语句

你好的!
我可以负责的告诉你,java 你根本写不出来!
是否为SQL 你要考虑SQL 的语法是否正确,如果不正确的话都不是SQL 了!
如果有能力做到这一点,那么:就是有能力写SQL 解析引擎了!
所以,放弃在JAVA 上做这个事儿!
直接扔到数据库,执行是否成功来判断是否是SQL 比较合理!
望采纳~~

⑸ 正则表达式 判断检测sql语句

publicstaticRegexrxColumns=newRegex(@"A(withs+(?:(?!as).)+s+as)?s*SELECTs+((?:((?>((?<depth>)|)(?<-depth>)|.?)*(?(depth)(?!)))|.)*?)(?<!,s+)FROM",RegexOptions.IgnoreCase|RegexOptions.Multiline|RegexOptions.Singleline|RegexOptions.Compiled);

⑹ java 验证字符串是否为sql语句 并且是否包含 select 关键字

java验证字符串是否为sql语句,是否包含select关键字,主要使用的是正则表达式来进行验证,如下:

importjava.util.*;
importjava.text.*;
classsqltest
{
publicstaticvoidmain(String[]args)
{
Stringspan="selectaaaa.idname,hello,typet,hfromdatasaaaa,citybwherea.id=b.idandclike'e%'andnameisnull";
span=span.toUpperCase();//测试用sql语句
System.out.println(span);
Stringcolumn="(\w+\s*(\w+\s*){0,1})";//一列的正则表达式匹配如proctp
Stringcolumns=column+"(,\s*"+column+")*";//多列正则表达式匹配如proctp,categoryc,warehousew
Stringownerenable="((\w+\.){0,1}\w+\s*(\w+\s*){0,1})";//一列的正则表达式匹配如a.proctp
Stringownerenables=ownerenable+"(,\s*"+ownerenable+")*";//多列正则表达式匹配如a.proctp,a.categoryc,b.warehousew
Stringfrom="FROM\s+"+columns;
Stringcondition="(\w+\.){0,1}\w+\s*(=|LIKE|IS)\s*'?(\w+\.){0,1}[\w%]+'?";//条件的正则表达式匹配如a=b或aisb..
Stringconditions=condition+"(\s+(AND|OR)\s*"+condition+"\s*)*";//多个条件匹配如a=bandclike'r%'ordisnull
Stringwhere="(WHERE\s+"+conditions+"){0,1}";
Stringpattern="SELECT\s+(\*|"+ownerenables+"\s+"+from+")\s+"+where+"\s*";//匹配最终sql的正则表达式
System.out.println(pattern);//输出正则表达式
System.out.println(span.matches(pattern));//是否比配

}
}

⑺ 用mysql写一个验证用户名的sql语句怎么写

String sql="select uname,pwd from mm where uname=? and pwd=?

方法的返回值用对象 即: 封装 uname,pwd 的类

⑻ 管理员登录验证sql语句为什么这么写

因为最终生成的语句为SELECT * FROM gl WHERE name='xxxx' and path='xxxx'

如果不过滤得花就会有这样的现象SELECT * FROM gl WHERE name='xx'xx' and path='x'xxx',这句话是不能执行的

⑼ sql 语句 验证身份证号码

帮你搜了一下,参考参考。

主要验证SQL数据库中已输入的15位 及18位 身份证号码的位数、出生年月日是否正确,
可以过滤出大部分的输入错误。

or (len(身份证号)=18 and (Substring(身份证号,7,2)<'19' or Substring(身份证号,7,2)>'20'
or (Substring(身份证号,11,2)>12)
or (Substring(身份证号,11,2) in (01,03,05,07,08,10,12) and Substring(身份证号,13,2)>31)
or (Substring(身份证号,11,2) in (04,06,09,11) and Substring(身份证号,13,2)>30)
or (Substring(身份证号,11,2)=02 and Substring(身份证号,13,2)>29)))
---------------------- 下面是针对 15位 及18位 身份证号码性别的验证语句 ------------------

-- Access 不支持 Substring 查询,可以替换为 mid 查询。
select 序号,姓名,身份证号,性别
from 身份表
where (((len(身份证号)=15) and (Substring(身份证号,15,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=15) and (Substring(身份证号,15,1) in (2,4,6,8,0)) and 性别<>'女'))
or (((len(身份证号)=18) and (Substring(身份证号,17,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=18) and (Substring(身份证号,17,1) in (2,4,6,8,0)) and 性别<>'女'))

---------------------- 下面是针对 15位 及18位 身份证号码位数与出生年月日的验证 ------------------

-- Access 不支持 Substring 查询,可以替换为 mid 查询。

select 序号,姓名,身份证号,性别
from 身份表
where (len(身份证号)<>15 and len(身份证号)<>18)
or (len(身份证号)=15 and ((Substring(身份证号,9,2)>12)
or (Substring(身份证号,11,2) > 31)
or (Substring(身份证号,9,2) in (01,03,05,07,08,10,12) and Substring(身份证号,11,2)>31)
or (Substring(身份证号,9,2) in (04,06,09,11) and Substring(身份证号,11,2)>30)
or (Substring(身份证号,9,2)=02 and Substring(身份证号,11,2)>29)))