1.动态 SQL  

动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句

编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句、对语句进行语法分析并执行

DDL 语句命令和会话控制语句不能在 PL/SQL 中直接使用,但是可以通过动态 SQL 来执行

执行动态 SQL 的语法:

EXECUTE IMMEDIATE dynamic_sql_string

[INTO  define_variable_list]

[USING bind_argument_list];

execute immediate 字符串参数 [into] 变量 using 参数

immediate后面跟的参数:它是一个字符串类型的sql语句,或者字符串类型的plsql代码

into 变量:是把sql语句的执行结果保存到变量中

using 参数:传给sql语句的参数

2.异常 

1.异常概述

在运行程序时出现的错误叫做异常

发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分

declare

声明部分;

begin

plsql代码块;

exception

异常处理部分;

end;

ORACLE异常分为两种类型:系统异常、自定义异常。其中系统异常又分为:预定义异常和非预定义异常。

2.预定义异常

就是Oracle已经事先定好的异常编号与异常名字。

3.非预定义异常

ORACLE为它定义了错误编号,但没有定义异常名字。我们使用的时候,先声名一个异常名,通过伪过程PRAGMA EXCEPTION_INIT,将异常名与错误号关联起来。

如:

pragma exception_init(自定义的异常,编号);

insert into emp(empno,deptno) values(7369,10);

declare

--声名异常变量

myexc exception;

--绑定异常

pragma exception_init(myexc,-00001);

begin

begin

insert into emp(empno,deptno) values(7369,10);

-- commit;

exception

when myexc then

--    rollback;

dbms_output.put_line('违反唯一约束');

end;

dbms_output.put_line('-----');

end;

4.自定义异常

程序员从业务角度出发,制定的一些规则和限制。

异常名称 exception;

抛出异常:

raise 异常名称

declare

--定义一个自己的异常

myexcp exception;

--声名两个变量接收两个数

m number(10):=&m;

n number(10):=&n;

begin

if n=0 then

dbms_output.put_line('除数不能为零');

raise myexcp;

end if;

dbms_output.put_line(m/n);

end;

PLSQL之动态SQL与异常相关推荐

  1. PLSQL——动态SQL、异常(预定义异常、非预定义异常、自定义异常)、引发应用程序错误

    1.动态 SQL 动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句 编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句.对语句进行语法分析并执行 DDL 语句命令和会话控制语 ...

  2. PLSql 动态SQL应用理解

    PLSql 动态SQL应用 一.知识点 (1)表类型 表类型变量table 语法如下: type 表类型 is table of 类型 index by binary_integer; 表变量名 表类 ...

  3. PLSQL 动态SQL

    在PL/SQL程序开发中,可以使用DML语句和事务控制语句,但是还有很多语句(比如DDL语句)不能直接在PL/SQL中执行. 这些语句可以使用动态SQL来实现. 语法格式:动态SQLEXECUTE I ...

  4. Oracle 动态游标 PL/SQL 动态SQL语句 open for [using] 语句

    PL/SQL:open for [using] 语句 2017年07月19日 09:52:55 学孩儿无牙哭做粥 阅读数:681 标签: oracleSQLPLSQL 更多 个人分类: ORACLES ...

  5. Oracle 动态SQL语句

    Oracle 动态SQL语句     EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQLpackage包.  它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块 ...

  6. PL/SQL -- 动态SQL调用包中函数或过程

    动态SQL主要是用于针对不同的条件或查询任务来生成不同的SQL语句.最常用的方法是直接使用EXECUTE IMMEDIATE来执行动态SQL语句字符串或字符串变量.但是对于系统自定义的包或用户自定的包 ...

  7. MyBatis-11MyBatis动态SQL之【if】

    动态SQL概述 if概述 在WHERE条件中使用if 需求 1.UserMapper接口中增加接口方法 2.UserMapper.xml配置动态SQL 3.单元测试 在UPDATE条件中使用if 需求 ...

  8. oracle 动态sql列转行_Oracle 行转列 动态出转换的列

    10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...

  9. 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。

    说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.InvalidOperationExcep ...

最新文章

  1. vue更新data中的数据页面不渲染_vue更新obj类data的属性无效,页面data没刷新解决方法vue.set...
  2. 智源新闻 | 麻省理工学院教授Max Tegmark报告交流会在北京举行
  3. 12年后,人工智能和人类会是什么样?这是900位专家的看法|报告
  4. 创建并运行HelloWorld Java项目和类
  5. Wannafly挑战赛21 E 未来城市规划
  6. bzoj2396:神奇的矩阵
  7. Linux确定命令的执行时长,Linux 历史命令显示执行时间
  8. spring中AOP动态代理的两种方式
  9. JS全选功能代码优化
  10. vue2.0项目结构和打包发布
  11. 复制网页的同时可以把图片复制下来_用华为手机“智慧识屏”功能识别图片中文字的方法...
  12. js怎么select 选中的值
  13. Android Service 详解一:概述
  14. C# int转string 每三位加一个逗号
  15. Python3 验证二代身份证号码信息
  16. Charles做弱网测试
  17. 如何用Word打开PDF文件?
  18. 微信公众号之免登陆快速入门
  19. 搭建网站的六个基本步骤流程(教程解说)
  20. 简述数据可视化制作流程

热门文章

  1. mysql如何实现两个数据库数据结构实时同步?
  2. 配置jdk,jre环境变量
  3. The elements of programming style,好程序的要素
  4. li 图片错位 浮动_css浮动导致错位怎么解决?
  5. 简单解析JavaScript的默认事件及如何阻止默认事件
  6. 海马手机助手怎么开启本地服务器,深度操作系统 V20(1003)内测版招募:新增手机助手,支持安卓和 iOS 端,管理手机应用、文件...
  7. 360路由器刷openwrt、不死uboot、双系统 、wifi中继
  8. shuffle算法c语言,C#Shuffle算法(洗牌算法、抽样算法)
  9. 【数据库篇】Redis知识点
  10. 哪个学校考研考python_考研,哪个学校最好考?