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

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
分享到:
评论

相关推荐

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

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

    oracle日志查看程序

    用java写的一个oracle日志查看器源代码,调用oracle数据库的logminer过程。包含一个不错的日历选择面板

    java开源包1

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java+oracle,的jdbc的简单学生信息系统

    初级Java程序员的学习jdbc的简单应用,调用dao包,以及jdbc通常写法的流程。 程序时在eclipse中进行操作的,对学生信息进行简单的增删改查。 数据库使用的是oracle,数据库的表也附上了。

    oracle常用命令-一完整的电子商务网案例

    电子商务网站案例下载:(数据库脚本,java调用示例,.net(c#)调用示例 说明:一个电子商务网站的oracle数据库完整设计,包括: ...Oracle常用命令14(.net / java代码调用(sql代码、程序包过程))

    java开源包4

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包8

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包10

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包6

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包11

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包101

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包9

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包5

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包3

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    oraclejdbc驱动

    ojdbc5dms.jar (2,429,777 字节)— 与 ojdbc5.jar 一样,除了包含支持 DMS 和有限的 java.util.logging 调用的工具。 ojdbc5dms_g.jar (3,101,875 字节)— 与 ojdbc5_g.jar 一样,除了包含支持 DMS 的工具。 ...

    java开源包2

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包7

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    //加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面 public class InsertCoffees { public static void main(String args[]) { String url = "jdbc:odbc:sqlserver"; //取得连接的url名,...

Global site tag (gtag.js) - Google Analytics