<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 閱讀(5189) 評論(0)  編輯  收藏 所屬分類: 數據庫日記 、java文件操作
    主站蜘蛛池模板: 女人裸身j部免费视频无遮挡| 亚洲人成色7777在线观看| 日韩一区二区在线免费观看| 亚洲日韩在线中文字幕第一页| 亚洲va在线va天堂va不卡下载| 亚洲毛片基地4455ww| 国产免费一区二区视频| 国产一级淫片a免费播放口之| 亚洲综合网美国十次| 国产黄片不卡免费| 免费看污成人午夜网站| 日韩亚洲人成在线综合日本| 国产亚洲精品AAAA片APP| 4虎永免费最新永久免费地址| 国产日产亚洲系列| 亚洲Av永久无码精品一区二区| 18以下岁毛片在免费播放| 亚洲综合无码AV一区二区| 99re8这里有精品热视频免费| 免费大黄网站在线看| 亚洲精品V天堂中文字幕| 在线永久看片免费的视频| 亚洲一区精彩视频| 免费中文字幕在线| 国产免费无码一区二区| 亚洲一区二区三区在线| 最近免费中文字幕大全免费| 国产精品亚洲精品日韩已满| 七次郎成人免费线路视频 | 久久久亚洲精品国产| 久久精品免费一区二区| 亚洲VA成无码人在线观看天堂| 精品无码国产污污污免费网站国产| 国产一区二区三区免费视频| 99视频在线免费观看| 亚洲一区二区三区91| 亚洲人成电影网站国产精品| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲精品美女视频| 免费看国产精品麻豆| 青青草无码免费一二三区|