當前位置:首頁 » 編程語言 » 校驗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)))