`
gongsy
  • 浏览: 105043 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在Java中调用Oracle包中的过程

阅读更多
在Java中调用Oracle包中的过程


一、先在oracle中编写测试过程

1、首选建一个测试表

-- Create table
create table BOOK
(
  BOOKID    VARCHAR2(50) not null,
  BOOKNAME  VARCHAR2(50) not null,
  PUBLISHER VARCHAR2(50) not null,
  PRICE     VARCHAR2(50) null
)

2、编写ORACLE测试过程


CREATE OR REPLACE PACKAGE pkg_test
AS
   TYPE myrctype IS REF CURSOR;

   PROCEDURE get (p_id VARCHAR2, p_str OUT VARCHAR2, p_rc OUT myrctype);
END pkg_test;

/

CREATE OR REPLACE PACKAGE BODY pkg_test
AS
   PROCEDURE get (p_id VARCHAR2, p_str OUT VARCHAR2,p_rc OUT myrctype)
   IS
      sqlstr   VARCHAR2 (500);
   BEGIN
      p_str := ''''Hello,may~'''';
      IF p_id = ''''all'''' THEN
         OPEN p_rc FOR
            SELECT *
              FROM BOOK;
      ELSE
         sqlstr :=
            ''''select *
           from BOOK where BOOKID=:w_id'''';
         OPEN p_rc FOR sqlstr USING p_id;
      END IF;
   END get;
END pkg_test;

/

在这里我们建立了一个输入参数,为普通类型,两个输出参数,其中一个为普通VARCHAR2型,另一个为特殊的记录集类型。

(注:在数据库端测试一下这个过程,以确保没有问题,开始下面的操作~:)

二、编写JAVA代码测试过程

/*
* 创建日期: 2003-8-8
*/
package JDBC;

/**
* 作者:may
* 时间:15:09:23
*/
import java.sql.*;
import oracle.jdbc.driver.*;



     public class proctest {

  public static void main(String[] args) {
   proctest pc = new proctest();
   pc.ShowContent();
   }


  String sDBDriver="oracle.jdbc.driver.OracleDriver";
  String sConnStr="jdbc:oracle:thin:@10.3.8.48:1521:ORADB";


  Connection  connect=null;
  ResultSet rs = null;

  public proctest(){
   try{
    Class.forName(sDBDriver);
   }
   catch(ClassNotFoundException e){
    System.err.println(e.getMessage());
   }
  }
  public ResultSet ShowContent()
 
  {
 
   try{
  
    connect = DriverManager.getConnection(sConnStr,"SHUIBJ","SHUIBJ");
    CallableStatement  stmt = connect.prepareCall("{call PKG_TEST.GET(?,?,?)}");
  
    stmt.setString(1,"all");  //输入参数
  
    stmt.registerOutParameter(2,Types.CHAR); //输出参数为普通参数
    stmt.registerOutParameter(3,OracleTypes.CURSOR); //输出参数为结果集参数
    
    stmt.executeQuery();
  
    rs = ((OracleCallableStatement) stmt).getCursor(3); //得到输出结果集参数
  
    ResultSetMetaData rsmd = rs.getMetaData();
    int numberOfColumns = rsmd.getColumnCount();

    String str = stmt.getString(2);
   

    System.out.println("第二个参数为:"+str);
    System.out.println("结果集列数"+numberOfColumns);
  
    //列出结果集中的记录
    ResultSetMetaData md = rs.getMetaData();
    int nColumns = md.getColumnCount();
    for (int i=1;i<=nColumns;i++){
     System.out.print(md.getColumnName(i)+((i==nColumns)?"\n":"\t"));
     if(i==2) System.out.print("\t");
    }
  
    while (rs.next()){
     for(int i=1;i<=nColumns;i++){
     System.out.print(rs.getString(i)+((i==nColumns)?"\n":"\t"));
    }
   
    }
   }
   catch(SQLException ex){
    System.err.println(ex.getMessage()+"连数据库有问题!");
   }
 
   return rs;
 
  }

}

输出结果为:

第二个参数为:Hello,may~
结果集列数4
BOOKID BOOKNAME  PUBLISHER PRICE
001-22-23-1 jsp 应用开发详解 电子工业出版社 123
123  uml参考手册 机械工业出版社 34
分享到:
评论

相关推荐

    在oracle中使用java sources

    3. **创建Java存储过程**:封装调用API的Java代码为一个存储过程,这样就可以在PL/SQL中调用。 4. **权限管理**:确保数据库用户有执行Java代码和访问API所需的权限。 5. **调用存储过程**:在PL/SQL中,通过执行...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    在 Java 中,我们使用 CallabledStatement 来调用存储过程。首先,我们创建了一个 Connection 对象,然后使用 prepareCall 方法创建了一个 CallableStatement 对象。接着,我们设置输入参数和输出参数,并执行存储...

    如何实现Java对Oracle存储过程的调用.pdf

    以下是如何使用Java调用Oracle存储过程的详细步骤: 首先,确保已经正确地安装和配置了JDK,包括设置好环境变量,以及Oracle的JDBC驱动(如ojdbc.jar或ojdbc14.jar)。这些驱动包提供了与Oracle数据库通信的接口。 ...

    本地java实现远程oracle备份还原

    这个过程中可能涉及到的Java类和接口包括`DriverManager`, `Connection`, `Statement`, `ResultSet`, `File`, `URL`, `URLConnection`, `InputStream`, `OutputStream`等。对于Oracle数据库的特定操作,可能需要熟悉...

    java_for_oracle.rar_for oracle_oracle

    要在Oracle中创建Java存储过程,首先需要将Java源代码编译为字节码(.class文件),然后使用`DBMS_JAVA`包中的PL/SQL过程导入到数据库中。例如,使用`LOADJAVA`命令加载类,`GRANT EXECUTE`权限给用户,最后通过`...

    java调用存储过程小结.pdf

    文档《java调用存储过程小结.pdf》涉及了如何使用Java语言通过JDBC(Java Database Connectivity)API来调用Oracle数据库中的存储过程。这个过程中,重点在于理解Java与数据库交互的基本原理以及如何通过编程方式...

    Oracle集合类型输出参数的PLSQL存储过程及其Java调用.doc

    Oracle集合类型输出参数的PL/SQL存储过程及Java调用主要涉及如何在Oracle数据库中使用存储过程处理集合数据,并在Java应用中调用这些过程。本文档介绍了一种使用索引表作为输出参数的方法,以及如何在Java中处理返回...

    在Oracle8i中使用java编写存储过程.rar

    4. **创建存储过程接口**:在Oracle中定义一个PL/SQL过程,该过程将调用Java方法。这个接口是数据库与Java代码之间的桥梁。例如: ```sql CREATE OR REPLACE PROCEDURE my_plsql_procedure IS LANGUAGE JAVA AS ...

    oracle调用webService

    在系统实现中,有时会有直接在数据库端利用触发器、存储过程等方式进行数据传递、分发的业务,而其中可能会涉及一些业务逻辑,为了处理这些业务逻辑,并简单起见,可以直接在触发器或存储过程中调用一些 Java 类或 ...

    Java-Oracle-UDP通信

    在Java编程中,我们通常使用`java.net`包中的`DatagramSocket`类来处理UDP通信,而在Oracle数据库环境中,我们可以结合触发器、存储过程和服务器端Java类来实现更复杂的业务逻辑。 首先,让我们了解UDP通信的基本...

    JDBC与Oracle存储过程

    调用Oracle存储过程通常使用`CallableStatement`。步骤如下: 1. **准备CallableStatement**:通过`Connection.prepareCall()`创建CallableStatement,传入调用存储过程的SQL格式字符串,如`{call package_name....

    java web 生成实体

    在这个场景中,"java web 生成实体" 指的是使用特定工具或库,自动生成Java实体类(Entity)的过程。这些实体类通常用于表示数据库中的表,使得开发人员能够更方便地进行数据操作。 Oracle数据库是一种广泛使用的的...

    java连存储过程

    ### Java调用数据库存储过程详解 #### 一、引言 在Java开发中,通过Java应用程序来调用数据库中的存储过程是一种常见的需求。这不仅能提高程序执行效率,还能增强代码的安全性和可维护性。本文将详细介绍如何利用...

    Oracle对JSON处理函数Jar包

    在Oracle数据库中使用Java存储过程,可以调用这些类的方法来处理JSON数据。要使用JSONJar包,你需要将其加载到Oracle数据库的Java全局区域(Java Global Area, JGA)中,并确保数据库服务器有权访问和执行其中的类。...

    ORACLE数据库常用JAR包

    在Oracle数据库的日常管理和开发过程中,JAR(Java Archive)文件扮演着关键角色,它们通常包含了Java类、接口和资源文件,使得Java应用程序能够与数据库进行交互。本篇将深入探讨Oracle数据库常用JAR包及其相关知识...

    oracle 存储过程 用于分页

    本文将详细介绍如何利用Oracle数据库中的存储过程来实现自动分页功能,并通过Java程序调用这些存储过程。 #### 存储过程设计 为了实现分页功能,我们需要创建一个名为`page`的包,该包中包含了一个存储过程`p_...

    oracle 11g所有jar

    这些JAR文件在Oracle 11g中扮演着不可或缺的角色,因为它们提供了对Java存储过程、触发器、函数和包的支持。 1. **Java在Oracle 11g中的应用** - Java在Oracle数据库中的使用使得开发者可以利用Java的灵活性和强大...

    OCA Oracle Certified Associate Java SE 8 Programmer I Study Guide

    根据提供的文件信息,我们可以深入探讨《OCA Oracle Certified ...通过掌握以上这些知识点,考生将能够更好地准备Oracle Certified Associate Java SE 8 Programmer I的考试,并在实际开发工作中运用这些知识。

    怎么用oracle打包

    在Oracle数据库环境中,"打包"通常指的是将一系列相关的对象,如表、存储过程、函数、触发器、视图等,组织成一个可移植的结构,以便于迁移、备份或分发。这通常涉及到PL/SQL代码的管理和部署。在本文中,我们将详细...

    oracle分页查询

    Oracle数据库在处理大数据量时,分页查询...在Java和ASP.NET中调用Oracle存储过程,可以方便地在应用程序中实现分页功能。通过理解这些知识点,你可以有效地优化你的Oracle数据库应用,提升用户体验并减轻服务器负载。

Global site tag (gtag.js) - Google Analytics