PL/SQL——动态SQL & 游标

本文介绍了PL/SQL中的动态SQL技术,包括如何在对象不存在时创建子程序,使用execute immediate执行DML、DDL和DCL操作,并结合绑定变量使用。此外,还探讨了动态SQL的returning和return语句来接收查询结果,以及批处理和游标在处理多个数据时的应用,特别是如何利用FETCH将数据保存到集合变量中。
摘要由CSDN通过智能技术生成

动态SQL

1. 使用动态SQL可以在依赖对象不存在时创建子程序

2. 动态SQL主要利用execute immediate语句执行DML、DDL、DCL等语句操作

3. 如果使用了绑定变量,则必须在execute immediate中使用using字句设置所需要的绑定变量

4. 使用returning或return语句可以接收查询或更新后的返回结果

4. 使用批处理可以一次性将数据库之中取回的多个数据保存在集合里,或者使用forall将多个绑定参数设置到动态SQL之中

 

在游标中使用动态SQL

declare 
  cur_emp     sys_refcursor;   --游标变量
  v_empRow    emp%ROWTYPE;
  v_deptno    emp.deptno%TYPE := 10;
begin
  open cur_emp for 'select * from emp where deptno - :dno'
  using v_deptno;
  loop
    fetch cur_emp into v_empRow;
    exit when cur_emp%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE ('雇员姓名:'||v_empRow.name||',雇员职位:'||v_empRow.job);
  end loop;
  close cur_emp;
end;
/

利用FETCH保存多个数据到集合变量

declare 
  cur_emp     sys_refcursor;   --定义游标变量
  type emp_index is table of emp%rowtype index by pls_intrger;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值