`
dengyll
  • 浏览: 93122 次
社区版块
存档分类
最新评论

java-oracle 调用程序包

阅读更多

 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 
 import oracle.jdbc.OracleDriver;
 
 public class Test {
 
     /**
      * @param args
      */
     public static void main(String[] args) {
         Connection conn = null;
         CallableStatement callstmt = null;
         //String sql="{? = call MyPack.getAvgHisal()}";
         String sql="{? = call MyPack.getHisalAccordingGrade(?)}";
         try {
             conn = getConnection();
             if (conn != null) {
                 callstmt = conn.prepareCall(sql);
                 //the first parameter
                 callstmt.registerOutParameter(1, java.sql.Types.DECIMAL);
                 //the second parameter
                 callstmt.setString(2, "1");
                 callstmt.execute();
                 System.out.println(callstmt.getInt(1));
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
     static Connection getConnection() throws SQLException {
         DriverManager.registerDriver(new OracleDriver());
         String cs = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
         return DriverManager.getConnection(cs, "scott", "tiger");
     }
 }
 
1 --package
 2 create or replace package MyPack
 3 as
 4 function getHisalAccordingGrade(inGrade in salgrade.hisal%type)
 5 return salgrade.hisal%type;
 6 procedure getAvgHisal
 7 (v_average out number);
 8 end;
 9 
10 --package body
11 create or replace package body MyPack
12 AS
13 procedure getAvgHisal
14 (v_average out number)
15 as
16 begin
17 select AVG(hisal) into v_average
18 from salgrade;
19 end getAvgHisal;
20 
21 function getHisalAccordingGrade(inGrade in salgrade.hisal%type)
22  return salgrade.hisal%type
23  as
24  outHisal salgrade.hisal%type;
25  begin
26    select hisal into outHisal 
27    from salgrade where grade = inGrade;
28    return outHisal;
29  end getHisalAccordingGrade;
30  end MyPack;
 问题: 

 1. oracle集函数AVG()的返回值类型总是不匹配

2. 当sql文件中有多条sql语句的时候,可以拆成一句句的sql批量执行;当sql里面定义的是有具体定义的procedure,function或者package的时候也可以用call来调用;但是是不是所有的sql文件都可以执行,这个需要测试。。 

Java-Oracle类型转换:

 

Oracle与java.sql.Types的对应

Oracle                                java.sql.Types
 blob                                     blob
 char                                     char
 clob                                     clob
 date                                    date
 number                               decimal
 long                                     varbinary
 nclob,nvarchar2                   other
 smallint                                smallint
 timestamp                            timstamp
 raw                                      varbinary
 varchar2                               varchar

Sql server与java.sql.Types的对应

Sql server                           java.sql.Types
   bigint (2005,2008)                bigint
   timstamp,binary                    binary
   bit                                         bit
   char,nchar,unqualified          char
   datetime                               date
   money,smallmoney,decimal  decimal
   float (2005,2008)                  double
   float(2000)                            float
   int                                          integer
   image                                    longvarbinary
   text,ntext,xml                        longvarchar

    numeric                                 numeric
    real                                       real
    smallint                                smallint
    datetime,smalldatetime       timestamp
    tinyint                                  tinyint
    varbinary                             varbinay
    nvarchar,varchar                 varchar

DB2与java.sql.Types的对应

bigint                                       bigint
   blob                                      blob
   character,graphic                 char
   clob                                      clob
   date                                     date
   decimal                                decimal
   double                                 double
    integer                               integer
    longvargraphic                   longvarchar
    longvarchar

real                                        real
 smallint                                 smallint
 time                                      time
 timestamp                            timestamp
 vargraphic                            varchar
 varchar

MySQL与java.sql.Types的对应

MySQL                          java.sql.Types
  bigint                              bigint
   tinyblob                         binary
   bit                                  bit
   enum,set,char               char
   date,year                      date
   decimal,numeric            decimal
   double,real                   double
   mediumint,int                integer
   blob,mediumblob           blob
   longblob
   float                               real

smallint                           smallint
   time                             time
   timestamp,datetime     timestamp
   tinyint                           tinyint
   varbinary,binary           varbinay
   varchar,tinytext,text     varchar
Sybase与java.sql.Types的对应

Sybase                            java.sql.Types
   binary                                 binary
   bit                                       bit
   char,nchar,                            char
   money,smallmoney,decimal    decimal
   float                                     double
    int                                       integer
   image                                    longvarbinary
   text                                      longvarchar
numeric                                   numeric
    real                                     real
    smallint                              smallint
    datetime,smalldatetime     timestamp
    tinyint                                 tinyint
    varbinar,timestamp            varbinay
    nvarchar,varchar ,sysname   varchar

 
2
1
分享到:
评论

相关推荐

    java-oracle.zip_Empoyee_java+oracle_oracle

    Oracle提供了一个实现JDBC的驱动,叫做Oracle JDBC驱动,使得Java应用程序能够与Oracle数据库进行通信。 2. **Oracle JDBC 驱动**: Oracle提供了两种主要的JDBC驱动: Thin驱动和 Thick驱动。Thin驱动是一种纯Java...

    mysql-connector-java-5.1.47 jar包

    JDBC是Java平台上的标准API,由Sun Microsystems(现在是Oracle公司的一部分)开发,用于在Java程序中建立和管理数据库连接。它允许开发者使用SQL语言进行数据查询、插入、更新和删除等操作。JDBC提供了一套接口和类...

    java-oracle中几十个实用的PLSQL.rar_Java plsql_oracle_oracle java_oracle

    本文将深入探讨Java与Oracle的结合,特别是PL/SQL在Java应用程序中的应用,基于提供的压缩包文件“java-oracle中几十个实用的PLSQL.rar”。 PL/SQL(Procedural Language/Structured Query Language)是Oracle...

    java-oracle.zip_java oracle_java web oracle_oracle

    JDBC提供了一组接口和类,使得Java程序可以执行SQL语句,读取和更新数据库中的数据。在Java中,我们需要引入Oracle的JDBC驱动,通常为ojdbc.jar,以便建立与Oracle数据库的连接。在项目中,我们通常会在类路径下添加...

    oracle调用java包

    在Oracle数据库系统中,有时我们...总结,Oracle调用Java包是通过Oracle内置的JVM实现的,涉及Java类的部署、权限管理以及在PL/SQL中的调用接口。了解这些知识点有助于我们更有效地在Oracle环境中集成和使用Java代码。

    JAVA-ORACLE存储过程

    【JAVA-ORACLE存储过程】是一个关于如何在Java应用程序中调用Oracle数据库中的存储过程的主题。这个主题涵盖了Java编程、Oracle数据库操作以及JSP(JavaServer Pages)的应用,旨在帮助开发者实现更高效的数据处理和...

    Java-Oracle存储过程知识

    Java-Oracle存储过程是数据库中一种重要的数据库对象,主要用于封装业务逻辑,能够将一组实现特定功能的SQL语句集合起来,进行预编译和优化存储在数据库服务器中,并通过名称来调用执行。存储过程的特点包括提高执行...

    mysql-connector-java-5.1.0 jar包

    标题中的"mysql-connector-java-5.1.0 jar包"指的是这个特定版本的驱动程序,它是一个.jar文件,用于在Java Web工程中进行MySQL数据操作。 首先,了解JDBC是理解MySQL Connector/J的关键。JDBC是Java中用于访问各种...

    个人亲测oracle触发器调用java程序

    Oracle触发器调用Java程序 Oracle触发器是Oracle数据库中的一种机制,可以在数据库中执行特定的操作。在本文中,我们将介绍如何使用Oracle触发器调用Java程序。 一、加载Java程序 首先,我们需要将Java程序加载到...

    java连接oracle的jar包

    Java连接Oracle数据库主要依赖于Oracle提供的JDBC驱动,也称为ojdbc.jar包。这个驱动程序使得Java应用程序能够通过Java Database Connectivity (JDBC) API与Oracle数据库进行交互。Oracle JDBC驱动有多种类型,如 ...

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

    Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中,需要创建两个Type类型:`myScalarType`和`myTableType...

    mysql-connector-java-5.1.22-bin.jar

    MySQL Connector/J是MySQL数据库管理系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中访问MySQL数据库。`mysql-connector-...

    mysql-connector-java-5.1.40-bin.jar连接器

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够通过编写Java代码来访问、操作MySQL数据库。在这个特定的...

    mysql-connector-java-8.0.27.jar

    通过 JDBC,Java 应用程序可以连接到各种支持 JDBC 的数据库,包括 MySQL、Oracle、SQL Server 等。 MySQL Connector/J 8.0.27 版本的发布意味着它已经经过了严格的测试,兼容 MySQL 数据库的 8.0.x 版本,同时也...

    mysql-connector-java-5.1.26.jar

    JDBC是Java平台的标准接口,由Sun Microsystems(现为Oracle公司)开发,用于在Java程序和各种数据库之间建立连接。通过JDBC,开发者可以编写与数据库无关的代码,实现跨数据库平台的数据访问。 mysql-connector-...

    oracle 触发器实时调用java 中http接口

    总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...

    一种利用Oracle-java包存储图片的解决方案

    01. 安装Oracle图文存储函数及JavaSource 02. 建立2014年的图文硬盘目录 03. 建立2014年的图文Oracle目录 04. 对Oracle用户XXXX进行目录访问授权2014年 05. 通过图文读写测试程序验证配置正确性(暂无需要可联系)...

    mysql-connector-java-8.0.26.rar

    JDBC 是 Java 平台上的一种标准接口,由 Sun Microsystems(现已被 Oracle 收购)定义,用于在 Java 应用程序和各种数据库之间建立桥梁。通过 JDBC,开发者可以编写可移植的代码,无需关心底层数据库的具体实现。...

    oracle调用java程序

    【Oracle调用Java程序】是Oracle数据库中的一种高级特性,允许开发者使用Java语言编写存储过程、函数等数据库组件,以扩展数据库的功能。这种方式结合了Java的面向对象编程能力与Oracle数据库的强大数据处理能力。 ...

    mysql-connector-java-5.1.48.zip

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。"mysql-...

Global site tag (gtag.js) - Google Analytics