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

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

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

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0

    oracle 存儲過程返回數組的方法:
    1.建立包
    create or replace package test is
    TYPE filename_array IS TABLE OF varchar2(1);
    ?filename filename_array;
    end test;
    2. 建立存儲過程
    create or replace procedure test_array(v_cfjg out test.filename_array ) is
    begin DECLARE i number;
    D_cfjg dic_cfjg%rowTYPE;
    -- D_nr dic_cfjg%rowTYPE;
    cursor c1 is SELECT * FROM dic_cfjg;
    BEGIN
    i:=0;
    v_cfjg := test.filename_array(); --數組初始化

    open c1;
    LOOP fetch c1 into D_cfjg;
    EXIT WHEN c1%NOTFOUND ;
    i:=i+1;
    v_cfjg.EXTEND;
    -- DBMS_OUTPUT.PUT_LINE(TO_CHAR(D_cfjg.dm));
    v_cfjg(v_cfjg.count):=D_cfjg.dm;
    DBMS_OUTPUT.PUT_LINE(v_cfjg(v_cfjg.count));
    -- 測試
    -- FETCH C1 INTO D_cfjg;
    -- EXIT WHEN c1%NOTFOUND ;
    END LOOP;
    end;
    EXCEPTION
    WHEN TOO_MANY_ROWS THEN
    DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS');
    WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(sqlerrm);
    end test_array;

    ===========================

    Java 調用PL/SQL Returning Object Array

    上次寫了oracle 存儲過程返回數組的方法。這次實現在java調用返回值是數組的存儲過程方法。

    1. 數組:CYJ_ARRAY

    CREATE OR REPLACE TYPE CYJ_ARRAY is VARRAY(20) OF integer

    2. 存儲過程:getTestArray()

    CREATE OR REPLACE FUNCTION getTestArray RETURN CYJ_ARRAY
    AS
    ? l_test CYJ_ARRAY :=CYJ_ARRAY();

    ?? begin
    ??? FOR i IN 1..10 LOOP
    ????? l_test.extend;
    ????? l_test(l_test.count) := i;
    ????? dbms_output.put_line(l_test(l_test.count));
    ??? END LOOP;
    ??? RETURN? l_test;
    ? END;
    3. 調用存儲過程的java 類

    public class TestOracleReturnArray? {
    ?

    public static void main(String[] args) throws SQLException {
    ?Connection conn = null;
    ?CallableStatement cstmt = null;
    ?ResultSet rs = null;
    ?try {
    ??
    ??DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    ??conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora","zzz","sss");
    ??
    ??conn.setAutoCommit(false);
    ??String procedure = "{? = call getTestArray() }";// 調用存儲過程
    ??cstmt = conn.prepareCall(procedure);
    ??cstmt.registerOutParameter(1, OracleTypes.ARRAY,"CYJ_ARRAY"); //注:type name:區分大小,不是包中的type, 使用包中定義的type如何調用還不知道
    ??
    ??cstmt.execute();
    ??ARRAY array = (ARRAY)cstmt.getObject(1);
    ??Object[] items = (Object[])array.getArray();
    ??Object obj;
    ??
    ??for (int i = 0; i < items.length; i++) {
    ??? obj = items[i];
    ???
    ???System.out.println(obj);
    ???
    ???} // for
    ?} catch (Exception e) {
    ??e.printStackTrace();
    ?} finally {
    ??//DbConnRestore.connRestore(rs, cstmt, null, conn);
    ?}
    }

    }

    參考如下資料:

    http://www.oracle.com/technology/global/cn/sample_code/tech/java/codesnippet/jdbc/varray/index.html

    posted on 2006-11-03 11:24 有貓相伴的日子 閱讀(2012) 評論(0)  編輯  收藏 所屬分類: pl/sql
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲精品乱码久久久久久不卡| 91在线视频免费看| 国产成人精品日本亚洲专区| 国产精品久久久久久亚洲小说| 国产美女做a免费视频软件| 亚洲性色AV日韩在线观看| 成年女人18级毛片毛片免费| 亚洲av无码专区在线| 成人性生交大片免费看无遮挡| 色天使亚洲综合在线观看| 成年男女男精品免费视频网站| 亚洲精品无码av片| 亚洲AⅤ视频一区二区三区| 一个人看的www免费高清| 综合亚洲伊人午夜网| 久久精品免费电影| 亚洲理论片在线中文字幕| 插B内射18免费视频| 高潮毛片无遮挡高清免费视频| 亚洲乱码中文字幕手机在线| 中文字幕乱理片免费完整的| 亚洲AV综合色一区二区三区| 99久热只有精品视频免费看| 亚洲精品国产国语| 亚洲人成无码网WWW| 色欲A∨无码蜜臀AV免费播 | 香蕉视频在线免费看| 亚洲国产成人一区二区精品区| 在线看片免费人成视久网| 亚洲综合av一区二区三区不卡| 免费成人黄色大片| 免费人成视频在线观看网站| 亚洲色丰满少妇高潮18p| 中文字幕专区在线亚洲| 67pao强力打造国产免费| 精品久久久久久亚洲综合网| 亚洲精品无码久久一线| 成年女人毛片免费观看97| 精品国产呦系列在线观看免费 | 亚洲天堂中文字幕在线观看| 国产一区二区三区在线免费|