千家信息网

Oracle中怎么创建存储过程

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这期内容当中小编将会给大家带来有关Oracle中怎么创建存储过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、JAVA调用Oracle存储过程JAVA跟Orac
千家信息网最后更新 2025年01月23日Oracle中怎么创建存储过程

这期内容当中小编将会给大家带来有关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中怎么创建存储过程了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0