<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開發技術網
    主站蜘蛛池模板: 亚洲韩国在线一卡二卡| 亚洲国产综合精品中文第一区| 亚洲一级毛片中文字幕| 日韩在线不卡免费视频一区| 亚洲精品国产精品乱码不卡√| 两个人看的www视频免费完整版| 亚洲色一色噜一噜噜噜| 成人妇女免费播放久久久| 亚洲精品乱码久久久久久中文字幕 | 亚洲AV无码一区二区三区DV| 免费精品一区二区三区第35| 亚洲国产女人aaa毛片在线| 久久国产色AV免费看| 亚洲一级毛片视频| 日本不卡高清中文字幕免费| 视频免费1区二区三区| 亚洲精品白浆高清久久久久久| 成人片黄网站色大片免费观看APP| 亚洲AV电影院在线观看| 巨波霸乳在线永久免费视频| 亚洲乱码一二三四区乱码| 国产成人精品免费直播| 好猛好深好爽好硬免费视频| 亚洲综合自拍成人| 在线免费视频一区二区| 韩国免费a级作爱片无码| 亚洲一区二区三区首页| 美女被免费视频网站a国产| 国产精品成人免费观看| 亚洲精品人成电影网| 国产特级淫片免费看| 国产精品免费大片| 亚洲国产精品成人综合色在线| 精品亚洲视频在线观看| 美女视频黄的全免费视频| 一边摸一边桶一边脱免费视频| 亚洲免费精彩视频在线观看| 日韩在线视频免费看| 午夜网站在线观看免费完整高清观看| 亚洲综合激情五月色一区| 亚洲最大AV网站在线观看|