<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文件操作
    主站蜘蛛池模板: 久久久无码精品亚洲日韩软件 | 青青青免费国产在线视频小草| 最新精品亚洲成a人在线观看| 国产AV无码专区亚洲AV蜜芽 | 黄桃AV无码免费一区二区三区| 亚洲乱码中文字幕综合234| 边摸边吃奶边做爽免费视频网站 | 亚洲影视一区二区| 国产精品成人观看视频免费| 亚洲免费视频观看| 青苹果乐园免费高清在线| 亚洲色偷偷色噜噜狠狠99网| 国产无遮挡色视频免费视频| 日韩一级片免费观看| 国产美女亚洲精品久久久综合| 在线免费观看伊人三级电影| 亚洲AV福利天堂一区二区三 | 在线观看www日本免费网站| 91亚洲精品麻豆| 大学生美女毛片免费视频| 国产av无码专区亚洲av毛片搜| 国产亚洲精品成人a v小说| 成全动漫视频在线观看免费高清版下载| 亚洲a在线视频视频| 国产成人yy免费视频| 亚洲av无码一区二区三区天堂 | 无码人妻精品中文字幕免费东京热| 2020久久精品亚洲热综合一本| 国产一级高清视频免费看| 国产免费福利体检区久久| 亚洲综合一区二区| 国产人成免费视频| 免费久久人人爽人人爽av| 亚洲女人影院想要爱| 亚洲国产小视频精品久久久三级 | 国产卡一卡二卡三免费入口| 国产精品久久久久久亚洲小说| 亚洲AV无码专区国产乱码电影| 成视频年人黄网站免费视频| 九九全国免费视频| 亚洲一卡二卡三卡四卡无卡麻豆|