oracle set parseonly on,Set noexec on 与 Set parseonly on的区别及SQL语法检查
Set noexec 表示編譯但不執(zhí)行語句。
Set parseonly 表示解析但不編譯或執(zhí)行語句
我們可以用來將SQL語法檢查集成中到我們的系統中,如下SQL代碼
--設置只檢查
SET PARSEONLY on
--被檢查的代碼
create procedure My_Proc
as
create table My_tb1(a int,b varchar(20))
drop TABLE My_ta1
通過使用set parseonly on,可以檢查存儲過程,函數等任何SQL代碼集的語法正確與否比較適合在SQL查詢分析器中執(zhí)行
通過對set noexec on的測試,發(fā)現必須先go,再貼上需檢查的代碼,因為先編譯所以會檢查對象是否存在
--設置只檢查
SET NOEXEC ON
go
--被檢查的代碼
create procedure My_Proc
as
create table My_tb1(a int,b varchar(20))
drop TABLE My_ta1
--執(zhí)行無任何異常
在delphi中的調用代碼如下:
ExecSQL(Fmycds1,'SET NOEXEC ON');
ExecSQL(Fmycds1,SQLSTR);//這一句就是要檢查的SQL代碼,可以是批處理,也可是存儲過程、函數等
ExecSQL(Fmycds1,'SET NOEXEC OFF');
在任何開發(fā)語言(c#\JAVA\php)的客戶端,只要用這種模式,就可以實現MSSQL的語法檢查
注:發(fā)現一個限制:被驗證的SQL腳本中不能包含冒號,需用其他字符替換
總結
以上是生活随笔為你收集整理的oracle set parseonly on,Set noexec on 与 Set parseonly on的区别及SQL语法检查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海军075型两栖攻击舰
- 下一篇: 速派奇Q3收音机怎么调