zoukankan      html  css  js  c++  java
  • 怎样让Oracle的存储过程返回结果集

    Oracle存储过程:

    CREATE OR REPLACE PROCEDURE getcity (
      citycode     IN       VARCHAR2,
      ref_cursor   OUT      sys_refcursor /* 这个sys_refcursor类型在SYS.STANDARD包中 */
    )
    AS
    BEGIN
      OPEN ref_cursor FOR
        SELECT *
          FROM tb_city_code
         WHERE city_code = citycode;
    END;
    /
    

    Java调用代码:

    try {
              DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
              Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:wjw", "sms", "sms");
    
              CallableStatement stmt = conn.prepareCall("BEGIN GETCITY(?, ?); END;");
              //CallableStatement stmt = conn.prepareCall("{ call GETCITY(?, ?) }");  //用此调用方法不能实现多行语法
    
              stmt.setString(1, "021");
              stmt.registerOutParameter(2, -10 /* OracleTypes.CURSOR = -10 */); //REF CURSOR(OracleTypes.CURSOR==-10)
              stmt.execute();
              ResultSet rs = (ResultSet) stmt.getObject(2);
              while (rs.next()) {
                System.out.println(rs.getString("CITY_NAME"));
              }
              rs.close();
              rs = null;
              stmt.close();
              stmt = null;
              conn.close();
              conn = null;
            }
            catch (SQLException e) {
              System.out.println(e.getLocalizedMessage());
            }
    
  • 相关阅读:
    Aop——面向切面编程
    认识界上最流行的Api框架——swagger
    手把手SSM框架实战
    面试题
    重新拾起JavaSE的日子
    使用IntelliJ IDEA创建第一个Maven项目
    Java面试必考题
    Vue项目——去哪网(首页部分)
    Vue项目的准备
    vue.js ③
  • 原文地址:https://www.cnblogs.com/likeju/p/5009945.html
Copyright © 2011-2022 走看看