<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)

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 国产日本亚洲一区二区三区| 亚洲精品国产免费| 欧洲 亚洲 国产图片综合| 亚洲午夜久久久久久久久久| 在线jyzzjyzz免费视频| 美丽姑娘免费观看在线观看中文版 | 亚洲国产成人一区二区精品区| 成人au免费视频影院| 91免费福利精品国产| 99久久99这里只有免费的精品| 日韩欧美亚洲国产精品字幕久久久| 亚洲综合免费视频| 亚洲电影中文字幕| 亚洲乳大丰满中文字幕| 亚洲精品第一国产综合境外资源| 成全视频免费高清 | 亚洲第一区在线观看| 丁香花在线观看免费观看| 久久精品国产免费观看| 无码国产精品一区二区免费vr | 亚洲国产成人a精品不卡在线| 国产最新凸凹视频免费| 日本最新免费不卡二区在线| AV片在线观看免费| 无码人妻一区二区三区免费| 亚洲高清视频免费| 亚洲网站免费观看| av无码国产在线看免费网站| 13一14周岁毛片免费| 24小时在线免费视频| 日本成年免费网站| 中字幕视频在线永久在线观看免费 | 国产免费私拍一区二区三区| 日韩在线天堂免费观看| 国产乱子影视频上线免费观看| 在线观看免费成人| 又粗又大又猛又爽免费视频| 国产免费av片在线播放| 亚洲av日韩片在线观看| 亚洲人成网站色在线入口| 国产亚洲精品福利在线无卡一 |