存储过程初体验

为什么要使用存储过程?

主要是从效率考虑,使用存储过程的效率要比往数据库中发送sql语句,编写sql语句来执行效率要高,存储过程事先已经过编译,会省掉编译的环节。在网络传输方面也会节省很多,通常是要向数据库中发送长长的sql语句,存储过程只需要传送几个参数即可,会大大提高执行的效率。

1.编写存储过程

尝试编写oracle的存储过程

create or replace procedure test1pro(nsrsbh in varchar2, rs out SYS_REFCURSOR) is
tablename varchar2(40);
querysql varchar2(200);
begin
     tablename:='out_khxx';
     querysql:='select * from '||tablename||' where 1=1';
     if nsrsbh != ''

        querysql:=querysql||' and nsrsbh='''||nsrsbh||'''';
     open rs for querysql;
end test1pro;
写好存储过程后进行编译,直至最后通过

2.进行测试

我是在PL/SQL中编写的存储过程,还能够对其进行测试,类似于debug功能,单步执行,查看变量的值,最后得到输出值,看是否与你想要的结果一样

3.编写程序调用存储过程

最后写调用存储过程的程序代码

CallableStatement proc = conn.prepareCall("{call test1pro(?,?)}");//调用存储过程
String nsrsbh="";
proc.setString(1,nsrsbh);                  //给输入参数传值
proc.registerOutParameter(2,OracleTypes.CURSOR);//声明输出参数类型
proc.execute();                                  //执行
ResultSet rs = (ResultSet)proc.getObject(2);//获得输出参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值