Java調用Oracle預存程序教程

來源:互聯網
上載者:User

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(); 
  } 
}

Ⅱ、JAVA調用Oracle預存程序【帶輸出參數的情況】
過程名稱為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(); 
  } 
}

   以上即是在JAVA中調用Oracle預存程序的最簡單的執行個體,接下來將介紹有關JAVA跟Oracle預存程序的其他方面內容。


二、使用JAVA建立Oracle預存程序
先看下如何使用JAVA來編寫Oracle預存程序,我們在Oracle的sql plus中編寫語句。
Ⅰ、啟動SQL PLUS
Ⅱ、編寫JAVA類,定義JAVA類別名,本預存程序為簡單地輸出傳入參數的平方值。

create or replace and compile java source named  "PF"  as
/** 
* 通過JAVA類來 建立Oracle預存程序 
*/ 
package org.oraclejava.pro; 
 
public class javaCreatePro { 
  public static String test(int num) { 
    return num + "的平方為: " + num * num; 
  } 
}

Ⅲ、將JAVA類中的方法test建立為一個Oracle函數方法

create or replace function PF_FUN(name integer) return varchar2 as language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String'; 


Ⅳ、在控制台直接調用建立的Oracle函數

  select PF_FUN(10) from dual;

Ⅴ、輸出結果
10的平方為:100

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.