blogjava's web log

          blogjava's web log
          ...

          java調oracle返回游標

          create ? or ? replace ?package?mypack? is
          ?Type?ref_cur?
          is ?ref? cursor ;
          ?
          function ?getCur? return ?ref_cur;
          end ;?

          create ? or ? replace ?package?body?mypack? as
          ??
          function ?getCur? return ?ref_cur? is
          ????cur1?ref_cur?;
          ????
          begin
          ???????
          open ?cur1? for ? select ? * ? from ?sales;
          ???????
          return ?cur1;
          ????
          end ;?
          ??
          end ?mypack;

          ??
          ?
          ? -- java代碼
          ??
          package ?store;
          import ?java.sql. * ;
          import ?oracle.jdbc. * ;
          public ? class ?Test? {
          ????
          public ?Test()? {
          ????}

          ???Connection?conn?
          = ? null ;
          ????
          public ? static ? void ?main(String[]?args)? {
          ????????Test?test?
          = ? new ?Test();
          ????????test.openCursor();
          ????}

          ????
          private ? void ?getConnection()? throws ?ClassNotFoundException,?SQLException? {
          ????????Class.forName(
          " oracle.jdbc.driver.OracleDriver " );
          ????????String?url
          = " jdbc:oracle:thin:@localhost:1521:ydgl " ;
          ????????conn
          = DriverManager.getConnection(url, " system " , " manager " );
          ????}

          ????
          public ? void ?openCursor()
          ????
          {
          ???
          ???ResultSet?rs?
          = ? null ;
          ???CallableStatement?stmt?
          = ? null ;
          ???String?sql?
          = ? " {??=?call?mypack.getCur()} " ;
          ??
          try
          ??
          {?
          ???getConnection();
          ???stmt?
          = ?conn.prepareCall(sql);
          ???stmt.registerOutParameter(
          1 ,OracleTypes.CURSOR);
          ???stmt.execute();

          ???rs?
          = ?((OracleCallableStatement)stmt).getCursor( 1 );

          ???
          while (rs.next())

          ??
          {
          ???String?xm?
          = ?rs.getString( 1 );
          ???Date?dtime?
          = ?rs.getDate( 2 );
          ???
          int ?count = rs.getInt( 3 );
          ???String?city
          = rs.getString( 5 );
          ???System.out.println(
          " name: " + xm + " ?|?Time: " + ?dtime.toLocaleString() + " ?|?Count: " + count + " ?|City: " + city);
          ???}

          ?}

          catch (Exception?ex) {
          ???ex.printStackTrace();
          ??}

          }

          ?

          posted on 2006-04-28 21:11 record java and net 閱讀(980) 評論(0)  編輯  收藏 所屬分類: java

          導航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 湾仔区| 临沭县| 开鲁县| 读书| 富川| 瓦房店市| 谷城县| 城固县| 古田县| 瑞金市| 齐齐哈尔市| 五常市| 达尔| 开远市| 耒阳市| 蛟河市| 墨脱县| 泸西县| 唐海县| 盐津县| 磴口县| 田阳县| 永清县| 清丰县| 开江县| 翼城县| 桐城市| 潮州市| 镇安县| 营口市| 阿拉善左旗| 越西县| 泸定县| 怀集县| 桂东县| 涟水县| 山东省| 青浦区| 延寿县| 安多县| 五华县|