程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> java連接數據庫調用有返回值的oracle存儲過程

java連接數據庫調用有返回值的oracle存儲過程

編輯:Oracle數據庫基礎

Java連接Oracle數據庫,應該如何調用有返回值的Oracle存儲過程呢?下面就為您介紹Java連接數據庫調用有返回值的Oracle存儲過程的方法,供您參考。

有返回值的Oracle存儲過程(非列表)
存儲過程為:

  1. CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2)   AS  
  2. BEGIN   
  3.    SELECT INTO PARA2 FROM TESTTB WHERE I_IDPARA1;   
  4. END TESTB; 

在Java裡調用時就用下面的代碼:

  1. package com.hyq.src;  
  2.  
  3. public class TestProcedureTWO {  
  4.    public TestProcedureTWO() {  
  5.    }  
  6.    public static void main(String[] args ){  
  7.      String driver = "oracle.jdbc.driver.OracleDriver";  
  8.      String strUrl = "jdbc:Oracle:thin:@127.0.0.1:1521:hyq";  
  9.      Statement stmt = null;  
  10.      ResultSet rs = null;  
  11.      Connection conn = null;  
  12.      try {  
  13.        Class.forName(driver);  
  14.        conn =   DriverManager.getConnection(strUrl, " hyq ", " hyq ");  
  15.        CallableStatement proc = null;  
  16.        proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }");  
  17.        proc.setString(1, "100");  
  18.        proc.registerOutParameter(2, Types.VARCHAR);  
  19.        proc.execute();  
  20.        String testPrint = proc.getString(2);  
  21.        System.out.println("=testPrint=is="+testPrint);  
  22.      }  
  23.      catch (SQLException ex2) {  
  24.        ex2.printStackTrace();  
  25.      }  
  26.      catch (Exception ex2) {  
  27.        ex2.printStackTrace();  
  28.      }  
  29.      finally{  
  30.        try {  
  31.          if(rs != null){  
  32.            rs.close();  
  33.            if(stmt!=null){  
  34.              stmt.close();  
  35.            }  
  36.            if(conn!=null){  
  37.              conn.close();  
  38.            }  
  39.          }  
  40.        }  
  41.        catch (SQLException ex1) {  
  42.        }  
  43.      }  
  44.    }  
  45. }  
  46.  
  47. }  

注意,這裡的proc.getString(2)中的數值2並非任意的,而是和存儲過程中的out列對應的,如果out是在第一個位置,那就是proc.getString(1),如果是第三個位置,就是proc.getString(3),當然也可以同時有多個返回值,那就是再多加幾個out參數了。

以上就是Oracle連接數據庫調用有返回值的Oracle存儲過程的方法介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved