编程开发之--Oracle数据库--存储过程使用动态参数绑定(3)

本文介绍了一种在Oracle中实现动态参数绑定的方法,通过创建包和包体,利用EXECUTE IMMEDIATE结合光标来动态执行SQL语句,实现根据不同输入参数执行不同查询。

1、动态参数绑定,可以实现动态的执行不同的sql

--创建包
create or replace PACKAGE MYPACKAGE AS 

  type empcursor is ref cursor;
  procedure queryEmpList(dno in number,empList out empcursor);

END MYPACKAGE;
--创建包体
create or replace PACKAGE BODY MYPACKAGE AS

  procedure queryEmpList(dno in number,empList out empcursor) AS
     str_l_selectsql varchar2(4000);
  BEGIN
    str_l_selectsql :='select * from emp where deptno = :dno';
    --EXECUTE IMMEDIATE str_l_selectsql USING  v_2;--不能实现动态绑定参数
    --str_l_selectsql :=str_l_selectsql || dno;--可以通过拼接sql的方式,但不专业
    --open empList for str_l_selectsql;
    --使用光标,首先要打开光标
    open empList for str_l_selectsql USING  dno;--动态绑定参数
    
    NULL;
  END queryEmpList;

END MYPACKAGE;

 

转载于:https://www.cnblogs.com/ZeroMZ/p/9252037.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值