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

本文详细介绍了PL/SQL中的动态SQL执行方式及其语法,同时深入讲解了异常处理,包括预定义异常(如NO_DATA_FOUND, TOO_MANY_ROWS等)、非预定义异常和自定义异常的捕获与处理。此外,还阐述了如何通过RAISE_APPLICATION_ERROR引发应用程序错误。" 103780003,4889923,VIP文章与APP阅读冲突测试,"['js', '前端开发']
摘要由CSDN通过智能技术生成

1.动态 SQL

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

执行动态 SQL 的语法:
EXECUTE IMMEDIATE 字符串类型的命令
[INTO 变量]
[USING 参数];
execute immediate 字符串参数 [into] 变量 using 参数
immediate后面跟的参数:它是一个字符串类型的sql语句,或者字符串类型的plsql代码
into 变量:是把sql语句的执行结果保存到变量中
using 参数:传给sql语句的参数
如:

--按照员工编号查询员工的信息
declare
  --声名一个变量保存员工信息
  v_emp emp%rowtype;
  --声名一个字符串类型变量
  v_sql varchar2(255);
begin
  execute immediate 'select * from emp where empno=7369' into v_emp;
  dbms_output.put_line(v_emp.ename||','||v_emp.job);
 
  v_sql:='select * from emp where empno=7369';
  execute immediate v_sql into v_emp;
  dbms_output.put_line(v_emp.ename||','||v_emp.job);
  
  v_sql:='select * from emp where empno=:a and deptno=:b';
  execute immediate v_sql into v_emp using 7369,20;
按照顺序将两个数输入进去一一对应。
  dbms_output.put_line(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值