这期内容当中小编将会给大家带来有关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中怎么创建存储过程了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。