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

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

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

    posts - 0,  comments - 6,  trackbacks - 0

    數據采用oracle數據庫scott/tiger示范賬戶下的emp(員工)dept(部門)表:

    create table DEPT

    (

      DEPTNO NUMBER(2) not null primary key,

      DNAME  VARCHAR2(14),

      LOC    VARCHAR2(13)

    )


    create table EMP

    (

      EMPNO      NUMBER(4) not null  primary key,

      ENAME      VARCHAR2(10),

      JOB        VARCHAR2(9),

      MGR        NUMBER(4),

      HIREDATE   DATE,

      SAL        NUMBER(7,2),

      COMM       NUMBER(7,2),

      DEPTNO     NUMBER(2),

      constraint FK_DEPTNO foreign key (DEPTNO)references DEPT (DEPTNO)

    )


    Oracle存儲過程代碼:

    Create or replace PROCEDURE searchEmpByDept(

           indeptno IN NUMBER,

           empcur OUT sys_refcursor,

           errorMsg OUT varchar)

    IS

    BEGIN

        errorMsg:='';

        OPEN empcur FOR

          SELECT *

          FROM emp

          WHERE deptno = indeptno

          ORDER BY empno;

      EXCEPTION

        WHEN OTHERS THEN

          errorMsg:= sqlerrm;-- sqlcode是異常編號,sqlerrm是異常的詳細信息

    END searchEmpByDept; 


    使用 pl/sql 過程語句測試上面的存儲過程: 

    declare 

    errorMsg  varchar(1000);

    empcur sys_refcursor;

    emp scott.emp%rowtype; 

    begin

       searchEmpByDept(10,empcur, errorMsg);

       if errorMsg is not null then

          dbms_output.put_line(errorMsg);

       end if;

       

       loop

          fetch empcur into emp;

          EXIT WHEN empcur%notfound ; 

          dbms_output.put_line(emp.ename);

       end loop;

       

       close  empcur;

    end;


    Java調用代碼:

    public class DBHelper  {

        private Connection conn = null;

        public Connection getConnection() throws ClassNotFoundException, SQLException {

            Class.forName("oracle.jdbc.driver.OracleDriver");

            conn = DriverManager.getConnection(

                "jdbc:oracle:thin:@192.168.1.6:1521:ntcsoft"

                "scott",

                "tiger");

            return conn;

        }

    }


    public class CallOracleProcedure {

      public static void main(String args[]) {

        ResultSet rs = null;

        CallableStatement st = null;

        Connection con =  null;

        try {

        con = new DBHelper().getConnection();

        String sql = "call searchEmpByDept(?,?,?)";

        st = con.prepareCall(sql);

        st.setInt(1, 20);//設置入參部門編號20

        //注冊返回類型參數。CURSOR類型在java.sql.Tyes中沒有定義,在驅動程序包中找到了

        st.registerOutParameter(2, oracle.jdbc.driver.OracleTypes.CURSOR);

        st.registerOutParameter(3, Types.VARCHAR);

        boolean result = st.execute();

        //獲取返回參數

        rs = (ResultSet) st.getObject(2);

        String msg = st.getString(3);

        if(msg != null)

           System.out.println(msg);//異常信息部為null則打印

        System.out.println("empno" + ""t" + "ename" + ""t" + "sal" + ""t""deptno");

        //輸出查詢結果

        StringBuilder output = new StringBuilder();

        while (rs.next()) {

            output.append(rs.getInt("empno"))

            .append(""t")

            .append(rs.getString("ename"))

            .append(""t")

            .append(rs.getDouble("sal"))

            .append(""t")

            .append(rs.getInt("deptno"));

            System.out.println(output.toString());

            output.delete(0, output.length());

        }

        output = null;

        }catch (Exception e) {

           e.printStackTrace();

        }finally{

        try {

           if(rs!=null) rs.close();

           if(st!=null) st.close();

           if(con!=null) con.close();

        } catch (SQLException e) {

            e.printStackTrace();

        }

        }

      }

    }


    注意,oracle數據庫的scott示范賬戶默認是被鎖定的,在使用之前需要解鎖:

    alter user scott account unlock;

    然后以scott/tiger 登陸數據庫服務器,會提示密碼已過期,并要求你立即輸入新密碼。


    學軟件開發,到蜂鳥科技!                   

    地址:鄭州市文化路豐產路口東50米豐產路21SOHO世紀城西塔20

    電話:0371-63839606  手機:13838505572(申老師) 13673990036 (許老師)

    QQ: 1073422643  1群:47614738 2群:108157678  鄭州軟件開發興趣小組群:38236716

    網址:www.ntcsoft.com

    posted on 2010-09-16 21:45 whistler 閱讀(2852) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(2)

    我參與的團隊

    文章檔案(22)

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 久久亚洲春色中文字幕久久久| 日本精品久久久久久久久免费| 亚洲一区二区三区国产精品无码| 国产亚洲国产bv网站在线| 亚洲AV无码专区在线观看成人| 深夜福利在线免费观看| 免费人成激情视频在线观看冫 | 日韩精品久久久久久免费 | 免费观看的a级毛片的网站| 亚洲精品97久久中文字幕无码| 亚洲国产天堂在线观看| 亚洲av日韩av永久无码电影| 青青操免费在线视频| 久久国产精品免费网站| 成人浮力影院免费看| 亚洲国产一区视频| 亚洲成a人片7777| 亚洲精品乱码久久久久久下载| 亚洲色成人WWW永久在线观看| fc2免费人成在线| 国产精品美女午夜爽爽爽免费| 亚洲裸男gv网站| 亚洲欧洲日韩极速播放| 成人一区二区免费视频| 日韩精品视频免费在线观看| 麻豆亚洲AV永久无码精品久久| 黄网站在线播放视频免费观看| 男人进去女人爽免费视频国产| 宅男666在线永久免费观看| 亚洲最大福利视频网站| 国产高潮流白浆喷水免费A片 | 成人午夜18免费看| 亚洲视频在线免费播放| 久久WWW免费人成—看片| 男女交性永久免费视频播放| 亚洲精品在线视频观看| 国产JIZZ中国JIZZ免费看| 成人免费无码大片a毛片| 亚洲欧洲校园自拍都市| 久久免费精品一区二区| 最近免费中文在线视频|