<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 826119
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

     

    調用無入參的函數

    函數定義

    CREATE OR REPLACE Function f_getstring Return Varchar2 Is
    Begin
     Return ''String value'';
    End f_getstring;

    調用函數的Java片斷

       CallableStatement cstmt = con.prepareCall("{?=call f_getstring}");
       cstmt.registerOutParameter(1, Types.VARCHAR);
       cstmt.execute();
       String strValue = cstmt.getString(1);
       System.out.println("The return value is:" + strValue);
       cstmt.close();

    調用有一個入參,一個輸出參數以及一個字符串返回值的函數

    函數定義

    CREATE OR REPLACE Function f_Getinfo(Id Integer, Age Out Integer) Return Varchar2 Is
    Begin
     Age := 10;
     Return ''The age is:'' || Id;
    End f_Getinfo;

    調用函數的Java代碼片斷

       CallableStatement cstmt = con
         .prepareCall("{?=call f_getinfo(?,?)}");
       cstmt.registerOutParameter(1, Types.VARCHAR);
       cstmt.setInt(2, 11);
       cstmt.registerOutParameter(3, Types.INTEGER);
       cstmt.execute();
       String strValue = cstmt.getString(1);
       int age = cstmt.getInt(3);
       System.out.println("The return value is:" + strValue
         + " and age is:" + age);
       cstmt.close();



    posted on 2009-05-12 10:27 Ke 閱讀(6370) 評論(2)  編輯  收藏 所屬分類: oraclejava

    FeedBack:
    # re: Java調用Oracle函數 2013-05-12 15:02 wms
    package com;

    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Types;

    public class TestProcedureOne {

    public TestProcedureOne() {

    }

    public static void main(String[] args) {

    String driver = "oracle.jdbc.driver.OracleDriver";
    String strUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
    Connection conn = null;
    CallableStatement cstmt = null;

    try {

    Class.forName(driver);
    conn = DriverManager.getConnection(strUrl, "wms", "wms");

    cstmt = conn.prepareCall("{?=call add_three_numbers(?,?,?)}");

    cstmt.registerOutParameter(1, Types.INTEGER);

    cstmt.setInt(2,4);
    cstmt.setInt(3,5);
    cstmt.setInt(4,6);

    cstmt.execute();
    System.out.println("調用函數add_three_numbers:"+cstmt.getInt(1));

    } catch (SQLException ex2) {
    ex2.printStackTrace();
    } catch (Exception ex2) {
    ex2.printStackTrace();
    }

    finally {

    try {

    if (cstmt != null) {
    cstmt.close();
    if (conn != null) {
    conn.close();
    }
    }
    } catch (SQLException e) {
    System.out.println("SQL state" + e.getSQLState());
    System.out.println("錯誤消息" + e.getMessage());
    System.out.println("錯誤代碼" + e.getErrorCode());
    e.printStackTrace();
    }

    }

    }

    }
      回復  更多評論
      
    # re: Java調用Oracle函數 2013-05-12 15:04 wms
    補充:上例使用的函數(oracle 11g中編寫)
    代碼:

    create or replace FUNCTION add_three_numbers ( a NUMBER:=0, b NUMBER:=0, c NUMBER:=0 )
    RETURN NUMBER
    AS
    Result1 NUMBER:=0;
    BEGIN
    Result1:=(a+b+c);
    RETURN Result1;
    END add_three_numbers;

      回復  更多評論
      
    主站蜘蛛池模板: 亚洲精品成人无限看| 免费成人黄色大片| 亚洲男人天堂2017| 暖暖免费高清日本一区二区三区| 中文字幕a∨在线乱码免费看| 成人免费午间影院在线观看| 一个人看的免费高清视频日本| 亚洲看片无码在线视频| 亚洲国产精品综合一区在线 | 人禽杂交18禁网站免费| 一级毛片成人免费看免费不卡 | 亚洲成av人在片观看| 久久精品国产精品亚洲艾草网美妙| 免费福利电影在线观看| 久久99热精品免费观看牛牛| 久久精品亚洲综合| 中文字幕免费观看| 亚洲日韩av无码中文| 亚洲?v女人的天堂在线观看| 四虎精品成人免费视频| 亚洲午夜国产精品无码| 国产麻豆成人传媒免费观看| 亚洲综合在线观看视频| 国产免费女女脚奴视频网| 77777午夜亚洲| 亚洲精品高清一二区久久| 无码人妻久久一区二区三区免费| 亚洲精品影院久久久久久| 免费黄色一级毛片| 成年女人A毛片免费视频| 亚洲黄色免费在线观看| 精品国产免费观看久久久 | 国产日产亚洲系列| 精品国产污污免费网站aⅴ| 亚洲精品天堂成人片AV在线播放 | 亚洲第一页综合图片自拍| 国产成人免费ā片在线观看老同学 | 亚洲乱码无码永久不卡在线| 6080午夜一级毛片免费看| 特级毛片全部免费播放a一级| 亚洲国产精品一区二区第一页|