扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这期内容当中小编将会给大家带来有关Oracle中怎么创建存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站专注于民乐企业网站建设,响应式网站开发,购物商城网站建设。民乐网站建设公司,为民乐等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
一、JAVA调用Oracle存储过程
JAVA跟Oracle之间最常用的是JAVA调用Oracle的存储过程,以下简要说明下JAVA如何对Oracle存储过程进行调用。
Ⅰ、不带输出参数情况
过程名称为pro1,参数个数1个,数据类型为整形数据
import java.sql. * ; public class ProcedureNoArgs { public static void main(String args[]) throws Exception { // 加载Oracle驱动 DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver()); // 获得Oracle数据库连接 Connection conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " ); // 创建存储过程的对象 CallableStatement c = conn.divpareCall( " {call pro1(?)} " ); // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 c.setInt( 1 , 188 ); // 执行Oracle存储过程 c.execute(); conn.close(); } }
Ⅱ、带输出参数的情况
过程名称为pro2,参数个数2个,数据类型为整形数据,返回值为整形类型
import java.sql.*; public class ProcedureWithArgs { public static void main(String args[]) throws Exception { //加载Oracle驱动 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //获得Oracle数据库连接 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd "); //创建Oracle存储过程的对象,调用存储过程 CallableStatement c=conn.divpareCall("{call pro2(?,?)}"); //给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 c.setInt(1,188); //注册存储过程的第二个参数 c.registerOutParameter(2,java.sql.Types.INTEGER); //执行Oracle存储过程 c.execute(); //得到存储过程的输出参数值并打印出来 System.out.println (c.getInt(2)); conn.close(); } }
Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。
Oracle存储过程可以有无参数存储过程和带参数存储过程。
一、无参程序过程语法
create or replace procedure NoParPro
as …… ;
begin
…… ;
exception //存储过程异常
…… ;
end;
二、带参存储过程实例
create or replace procedure queryempname(sfindno emp.empno%type) as
sName emp.ename%type;
sjob emp.job%type;
begin
....
exception
....
end;
三、 带参数存储过程含赋值方式
create or replace procedure runbyparmeters (isal in emp.sal%type,
sname out varchar,sjob in out varchar)
as icount number;
begin
select count(*) into icount from emp where sal>isal and job=sjob;
if icount=1 then
....
else
....
end if;
exception
when too_many_rows then
DBMS_OUTPUT.PUT_LINE('返回值多于1行');
when others then
DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS过程中出错!');
end;
四、在Oracle中对存储过程的调用
过程调用方式一
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //存储过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(realsal,realname,realjob); --必须按顺序
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
过程调用方式二
declare
realsal emp.sal%type;
realname varchar(40);
realjob varchar(40);
begin //过程调用开始
realsal:=1100;
realname:='';
realjob:='CLERK';
runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob); --指定值对应变量顺序可变
DBMS_OUTPUT.PUT_LINE(REALNAME||' '||REALJOB);
END; //过程调用结束
上述就是小编为大家分享的Oracle中怎么创建存储过程了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流