存储过程初体验

xiaoxiao2022-06-16  35

为什么要使用存储过程?

主要是从效率考虑,使用存储过程的效率要比往数据库中发送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);//获得输出参数

转载请注明原文地址: https://www.6miu.com/read-4940899.html

最新回复(0)