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

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

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

    浪跡天涯
    web報表設計器....
    posts - 61,comments - 71,trackbacks - 0
    定義兩個包(package)
    CREATE?OR?REPLACE?PACKAGE?pro_package_test_001?AS
    TYPE?Test_CURSOR01?
    IS?REF?CURSOR;
    end?pro_package_test_001;
    CREATE?OR?REPLACE?PACKAGE?pro_package_test_002?AS
    TYPE?Test_CURSOR02?
    IS?REF?CURSOR;
    end?pro_package_test_002;
    定義存儲過程
    CREATE?OR?REPLACE?PROCEDURE?pro_query_001
    (
    --參數IN表示輸入參數,OUT表示輸入參數,類型可以使用任意Oracle中的合法類型。
    ?in_lx??IN?Varchar2,
    ?p_cus_01?OUT?pro_package_test_001.Test_CURSOR01,
    ?p_cus_02?OUT?pro_package_test_002.Test_CURSOR02?????
    )
    AS
    --定義變量
    ?vs_lx???VARCHAR2(1);???--變量
    ?vs_test1_id???VARCHAR2(100);???--變量
    ?vs_test1_mc???VARCHAR2(100);???--變量
    ?vs_test2_id???VARCHAR2(100);???--變量
    ?vs_test2_mc???VARCHAR2(100);???--變量
    ?--default_c?SYS_REFCURSOR;????
    BEGIN
    ?
    --用輸入參數給變量賦初值。
    ?vs_lx:=?in_lx;
    ?
    --插入test1表。
    ?OPEN?p_cus_01?FOR??Select
    ????a.id?
    As?id1,
    ????a.mc?
    As?mc1,
    ????b.id?
    As?id2,
    ????b.mc?
    As?mc2?
    ????
    Into
    ????vs_test1_id,
    ????vs_test1_mc,
    ????vs_test2_id,
    ????vs_test2_mc?
    ????
    From?test1?a,test2?b?Where?a.id?=?b.id?And?a.lx?=?vs_lx;
    ???
    ????
    --if?p_cus_01%rowcount?=?0?then?
    ???--????p_cus_01:=default_c;?
    ???--?end?if;?
    ??
    ?
    OPEN?p_cus_02?FOR??Select
    ????id?
    As?id1,
    ????mc?
    As?mc1
    ????
    Into
    ????vs_test1_id,
    ????vs_test1_mc
    ????
    From?test2??Where?lx?=?vs_lx;??
    ???
    --?if?p_cus_02%rowcount?=?0?then?
    ????--???p_cus_02:=default_c;?
    ??--??end?if;???????
    ?--錯誤處理部分。OTHERS表示除了聲明外的任意錯誤。SQLERRM是系統內置變量保存了當前錯誤的詳細信息。
    Exception
    ???
    WHEN?OTHERS?Then
    ???
    ROLLBACK;
    ???
    Return;
    End?pro_query_001;
    java 代碼調用
    ?????public?void?ProcQuery(String?procString,String?[]?params)?throws?Exception?{?
    ?????????Session?session?
    =?null;
    ?????????Connection?conn?
    =?null;
    ?????????ResultSet?rs1?
    =?null;
    ?????????ResultSet?rs2?
    =?null;
    ???????????CallableStatement?proc?
    =?null;
    ???????????procString?
    =?"{call?pro_query_001(?,?,?)}";
    ???????????params?
    =?new?String?[1];
    ??????????params[
    0]="0";
    ?????????
    try?{????
    ??????????????session?
    =?getHibernateTemplate().getSessionFactory()
    ????????????.openSession();
    ??????????????conn?
    =?session.connection();?
    ?????????????proc?
    =?conn.prepareCall(procString);?
    ?????????????proc.setString(
    1,?params[0]);?????//傳入的參數
    ?????????????proc.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR);
    ?????????????proc.registerOutParameter(
    3,oracle.jdbc.OracleTypes.CURSOR);?
    ?????????????proc.execute();?
    ?????????????rs1?
    =?(ResultSet)proc.getObject(2);//返回第一個游標
    ?????????????rs2?=?(ResultSet)proc.getObject(3);//返回第二個游標
    ????????????while(rs1?!=?null?&&?rs1.next())?{
    ??????????????????System.out.println(
    ">>>"+rs1.getString("id1"));
    ??????????????????System.out.println(
    ">>>"+rs1.getString("mc1"));
    ??????????????????System.out.println(
    ">>>"+rs1.getString("id2"));
    ??????????????????System.out.println(
    ">>>"+rs1.getString("mc2"));
    ????????????}

    ????????????
    while(rs2?!=?null?&&?rs2.next())?{
    ????????????????System.out.println(
    ">>>"+rs1.getString("id1"));
    ????????????????System.out.println(
    ">>>"+rs1.getString("mc1"));
    ??????????}
    ????????????
    ?????????}
    ?catch?(SQLException?e)?{???
    ?????????????e.printStackTrace();???
    ?????????????
    throw?new?Exception("調用存儲過程的時候發生錯誤[sql?=?"?+?procString?+?"]",?e);?????????
    ?????????}
    ??finally?{
    ?????????????
    if?(proc?!=?null)
    ?????????????????proc.close();
    ?????????????
    if?(rs1?!=?null)
    ?????????????????rs1.close();
    ?????????????
    if?(rs2?!=?null)
    ?????????????????rs2.close();
    ?????????????
    if?(conn?!=?null)
    ?????????????conn.close();
    ?????????}
    ?
    ?????}
    posted on 2010-01-20 09:52 JJCEA 閱讀(5179) 評論(0)  編輯  收藏 所屬分類: 數據庫日記java文件操作
    主站蜘蛛池模板: 亚洲无吗在线视频| 亚洲日韩中文字幕在线播放| 亚洲国产成人精品无码区在线网站| 精品一区二区三区免费视频| AV在线亚洲男人的天堂| 一个人晚上在线观看的免费视频| 四虎影视在线永久免费观看| 国产精品成人亚洲| 亚洲Av无码乱码在线观看性色| 黄色三级三级三级免费看| 伊人久久亚洲综合影院| 一区二区视频在线免费观看| 在线亚洲精品自拍| 久久免费线看线看| 亚洲欧洲日本国产| 性一交一乱一视频免费看| 亚洲国产精品久久久久秋霞小| 日本不卡视频免费| 免费国产黄网站在线看| ZZIJZZIJ亚洲日本少妇JIZJIZ| 国产一级婬片A视频免费观看| 亚洲嫩模在线观看| 永久免费av无码网站韩国毛片| 亚洲kkk4444在线观看| 免费一级毛片在播放视频| 国产成人无码精品久久久免费| 亚洲av无码片在线播放| 青青视频观看免费99| 亚洲AV无码一区二区三区牲色 | 亚洲成AV人片在线观看无| 亚洲精品免费视频| 亚洲国产精品免费观看| mm1313亚洲国产精品美女| 99在线免费观看| 亚洲一区二区三区在线| 亚洲国产V高清在线观看| 国产精品白浆在线观看免费| 涩涩色中文综合亚洲| 国产成人亚洲精品狼色在线| 亚洲毛片免费观看| 久久亚洲精品无码av|