Set noexec 表示编译但不执行语句。

Set parseonly 表示解析但不编译或执行语句

我们可以用来将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查询分析器中执行

通过对set noexec on的测试,发现必须先go,再贴上需检查的代码,因为先编译所以会检查对象是否存在

--设置只检查

SET NOEXEC ON

go

--被检查的代码

create procedure My_Proc

as

create table My_tb1(a int,b varchar(20))

drop TABLE My_ta1

--执行无任何异常

在delphi中的调用代码如下:

ExecSQL(Fmycds1,'SET NOEXEC ON');

ExecSQL(Fmycds1,SQLSTR);//这一句就是要检查的SQL代码,可以是批处理,也可是存储过程、函数等

ExecSQL(Fmycds1,'SET NOEXEC OFF');

在任何开发语言(c#\JAVA\php)的客户端,只要用这种模式,就可以实现MSSQL的语法检查

注:发现一个限制:被验证的SQL脚本中不能包含冒号,需用其他字符替换

oracle set parseonly on,Set noexec on 与 Set parseonly on的区别及SQL语法检查相关推荐

  1. ORACLE分页查询SQL语法——最高效的分页

    --1:无ORDER BY排序的写法.(效率最高) --(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT *FROM (SELECT ...

  2. oracle 的遍历语法,oracle pl/sql之pl/sql语法

    一.pl/sql基础 pl/sql分匿名块和命名块. 命名块:存储过程,函数,触发器,包等. pl/sql语句块分3部分: (1)声明部分 (2)可执行部分 (3)异常处理部分 其中可执行部分是语句块 ...

  3. hibernate oracle驱动,出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误...

    出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误: org.hibernate.MappingException: No D ...

  4. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

    [在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别  CHAR为定长的字段,最 ...

  5. mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别

    Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的SQL语法区别: 1.在Oracle中用sele ...

  6. ORACLE分页查询SQL语法——高效的分页

    --1:无ORDER BY排序的写法.(效率最高) --(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ...

  7. oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳

    ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...

  8. oracle stdevp函数,ORACLE和SQL语法区别归纳整理.doc

    ORACLE和SQL语法区别归纳整理 一.数据类型比较⑴.字符数据类型?? CHAR?? CHAR?? 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长 ...

  9. 达梦数据库兼容Oracle之SQL语法(一)

    对于刚从Oracle数据库转到达梦数据库,SQL语法的使用基本一致,有一些差别,下面总结的一些常用SQL语法差别. 文章目录 1.导入数据 2.返回查询数据的返回行 3 外连接用法 4.多列IN用法 ...

最新文章

  1. Linux系统下统计目录及其子目录文件个数
  2. mybatis 配置_MyBatis教程3:优化MyBatis配置文件中的配置
  3. 未来趋势分析:Linux有可能成为java OS
  4. 虚拟机上的ubuntu安装vmware tools
  5. XSS (跨站脚本攻击) 分析与实战
  6. ADO学习(三)Command 对象
  7. leetcode:图相关算法
  8. 牛客网剑指offer编程实践1-10题
  9. 前端学习(1392):多人管理项目12加密
  10. MATLAB教程(1) MATLAB 基础知识(4)
  11. HDC2020开发者大会鸿蒙,华为开发者大会HDC 2020将于9月10日开启 鸿蒙OS 2.0亮相
  12. mysql 免安装重装_mysql 重装问题
  13. javacript 多文件程序
  14. mysql的两种存储方法_mysql的两种存储引擎
  15. shell调用python脚本传递命名关键字参数_关于python:将字典作为关键字参数传递给函数...
  16. 最强JAVA核心技术群
  17. PHP获取照片exif信息
  18. Logisim实验一
  19. 项目经理的文档提升能力
  20. 【DirectX11】【学习笔记(10)】混合

热门文章

  1. SpringBatch job执行流程分析(十六)
  2. 使用athens部署企业内部Gitlab go mod包的Go私服代理
  3. go mod require + replace解决本地包依赖问题
  4. Go gin使用html模板
  5. k8s证书配置:为 kubelet 配置证书轮换
  6. Python爬虫开发:requests库的使用--ip代理参数的设置
  7. Python爬虫开发:requests库的使用--发送带参数get请求
  8. Lua脚本语言应用场景
  9. Spring AOP编程-传统AOP开发切点表达式写法介绍
  10. java arrays.equals_Java Arrays类的常见使用