##一、动态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 表示出现此异常要做的的事情