<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文件操作
    主站蜘蛛池模板: 成人嫩草影院免费观看| 亚洲欧美日韩综合俺去了| g0g0人体全免费高清大胆视频| 毛片免费vip会员在线看| 中文字幕亚洲综合小综合在线| 国内精品乱码卡1卡2卡3免费| 67pao强力打造67194在线午夜亚洲| 午夜无码A级毛片免费视频| 国产亚洲3p无码一区二区| 国产自国产自愉自愉免费24区 | 亚洲精品免费观看| 免费国产黄网站在线观看视频| 亚洲欧洲日韩国产综合在线二区| 国产精品免费观看调教网| 精品亚洲成a人片在线观看少妇 | 亚洲aⅴ天堂av天堂无码麻豆| 免费黄色大片网站| 曰批免费视频播放在线看片二| 亚洲一级毛片中文字幕| 日韩免费精品视频| 亚洲一区AV无码少妇电影☆| 亚洲精品无码高潮喷水在线| 毛片免费全部播放无码| 亚洲一级毛片免观看| 破了亲妺妺的处免费视频国产| 日本高清免费中文在线看| 久久亚洲国产成人影院网站| 日本黄色动图免费在线观看| 亚洲精品视频久久| 免费观看的毛片手机视频| jizz18免费视频| 18亚洲男同志videos网站| 精品久久久久久久免费加勒比| 一区二区三区免费视频网站| 亚洲AV无码一区二区三区系列 | 亚洲国产精品张柏芝在线观看| 成在人线AV无码免费| 九九全国免费视频| 亚洲精品一卡2卡3卡三卡四卡| 免费看a级黄色片| a级毛片无码免费真人久久|