关于PL/SQL的【动态sql】 以及 plsql程序块的 【异常处理】 (续)

本文详细介绍了PL/SQL中的动态SQL概念及执行语法,强调了DDL语句和会话控制语句如何通过动态SQL实现。同时,文章深入讲解了异常处理,包括预定义异常和用户定义异常,特别提到了RAISE_APPLICATION_ERROR过程在创建用户定义错误信息中的应用。
摘要由CSDN通过智能技术生成

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

编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句、对语句进行语法分析并执行
DDL 语句命令和会话控制语句不能在 PL/SQL 中直接使用,但是可以通过动态 SQL 来执行

###②执行动态 SQL 的语法:

  EXECUTE IMMEDIATE sql语句 
      [INTO  define_variable_list]     -- 将动态sql执行结果放到预定义变量中去
         [USING bind_argument_list];   -- 使用绑定变量 
  • 这样的话ddl命令在PL/SQL程序段中就能使用了:
begin
 execute immediate ‘create table T(t1 int(2))’ ;
end;

二、异常处理 exception

  • 在运行程序时出现的错误叫做异常
  • 发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分

异常有两种类型:

  • 预定义异常 - 当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发 【即就是 oracle规定好的异常,有错误提示信息。】
    例如,我们在查找一个查找不到的数据,oracle数据库会报错
    ORA-01403: 未找到任何数据

捕获预定义异常:如下图所示,when表示异常名字 then 表示出现此异常要做的的事情

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值