`

JAVA调用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;  //过程调用结束
分享到:
评论

相关推荐

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    java调用oracle存储过程或者函数

    以上就是Java调用Oracle存储过程或函数的主要知识点,实践中要根据具体情况进行适当的调整和优化。在处理过程中,参考Oracle的JDBC文档和官方示例,以及Java API文档,将有助于理解和解决问题。

    JAVA调用ORACLE存储过程

    ### JAVA调用ORACLE存储过程知识点详解 #### 一、背景与概述 在现代软件开发过程中,集成多种技术栈是常态。特别是在企业级应用中,Java 和 Oracle 数据库的组合非常常见。通过 Java 调用 Oracle 存储过程不仅能够...

    java调用oracle存储过程(游标)相关

    总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。

    java调用Oracle存储过程的代码

    总结,通过Java调用Oracle存储过程,我们需要配置JDBC驱动,建立数据库连接,创建CallableStatement,设置参数,执行存储过程,并处理返回的结果。在这个例子中,我们展示了如何调用一个简单的存储过程并打印返回的...

    java调用oracle存储过程

    ### Java调用Oracle存储过程详解 #### 一、概述 在企业级应用开发中,数据库存储过程被广泛用于实现复杂的业务逻辑处理。由于其高效性和安全性,存储过程常常成为首选方案之一。Java作为主流的企业级开发语言之一...

    用java调用oracle存储过程

    以上代码展示了如何在Java中调用Oracle数据库的三种类型的存储过程:无返回值的存储过程、有单个返回值的存储过程以及返回列表的存储过程。对于无返回值的存储过程,主要涉及的是参数的输入,通过`execute()`方法...

    java调用oracle存储过程.wps

    java调用oracle存储过程.wps java调用oracle存储过程.wps java调用oracle存储过程.wps

    java 调用oracle存储过程

    总之,Java调用Oracle存储过程涉及的主要知识点包括JDBC API、Oracle JDBC驱动、`CallableStatement`对象、参数绑定、结果集处理以及资源管理。通过学习和实践这些内容,开发者可以有效地在Java应用中集成Oracle...

    java调用oracle存储过程入门实例 增删改查

    在Java中调用Oracle存储过程,我们需要使用JDBC(Java Database Connectivity),这是Java标准库提供的一组接口和类,用于与各种数据库进行通信。首先,我们需要添加Oracle JDBC驱动到项目中,例如ojdbc.jar。 1. *...

    JAVA调用ORACLE存储过程通用类

    ### JAVA调用ORACLE存储过程通用类 #### 概述 在Java开发中,经常会遇到需要与数据库交互的情况,特别是当涉及到复杂的业务逻辑时,利用数据库的存储过程可以有效地提高程序性能并简化代码结构。本篇文章将详细...

    Java调用Oracle存储过程的方法

    本文将详细讲解如何使用Java调用Oracle存储过程,并提供示例代码。 首先,我们需要了解Java中用于与数据库交互的核心类,包括`java.sql.Connection`、`java.sql.CallableStatement`和`java.sql.Types`。`Connection...

Global site tag (gtag.js) - Google Analytics