<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 閱讀(5193) 評論(0)  編輯  收藏 所屬分類: 數據庫日記java文件操作
    主站蜘蛛池模板: 亚洲?V乱码久久精品蜜桃| 又粗又大又猛又爽免费视频| 免费一看一级毛片| 亚洲日本天堂在线| 免费看美女让人桶尿口| 男人天堂2018亚洲男人天堂| 我们的2018在线观看免费高清| 久久大香伊焦在人线免费| 成人亚洲性情网站WWW在线观看| 国产精品亚洲а∨无码播放麻豆| 黄网址在线永久免费观看 | 亚洲人成电影在线观看青青| 2022久久国产精品免费热麻豆| 久久精品国产亚洲AV无码麻豆| 少妇太爽了在线观看免费视频| 亚洲国产人成在线观看69网站| 91久久青青草原线免费| 亚洲国产精品成人综合色在线婷婷| www视频在线观看免费| 性xxxx黑人与亚洲| 国产高清在线精品免费软件 | 亚洲国产精品激情在线观看| 一级毛片免费播放视频| 国产亚洲精久久久久久无码| 亚洲免费精彩视频在线观看| 亚洲人成影院午夜网站| 小小影视日本动漫观看免费| 一级美国片免费看| 亚洲国产二区三区久久| 啦啦啦高清视频在线观看免费| 亚洲AV噜噜一区二区三区| 久久精品国产亚洲精品| 无码av免费网站| 亚洲综合一区二区三区四区五区| 国产乱子伦精品免费女| a级毛片免费在线观看| 亚洲神级电影国语版| 国产精品深夜福利免费观看| 皇色在线免费视频| 亚洲无砖砖区免费| 全部免费毛片免费播放|