zoukankan      html  css  js  c++  java
  • oracle学习-存储过程返回一个值,和返回一个结果集

    一、返回一个值

    --创建存储过程
    
    create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is
    begin
    select cname into spname from gb_customerinfo where ccode = spcode;
    end;
    //java代码调用和接受返回值
    
    public static void main(String[] arg) {
       try {     Class.forName("oracle.jdbc.driver.OracleDriver");     Connection cnn = DriverManager.getConnection(
          "jdbc:oracle:thin:@192.168.1.116:1521:cwerp",
          "hu_gbxt", "hu_gbxt");
        //创建CallableStatement
        CallableStatement cs = cnn.prepareCall("{call sp_hu_test(?,?)}");     cs.setString(1, "082");
        cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);     cs.execute();
        String cname = cs.getString(2);
        System.out.println("名字:" + cname);     cs.close();
        cnn.close();
       } catch (Exception e) {
        e.printStackTrace();
       }
    
    }
    }

    二、返回多个值

    --创建一个包,包里有个游标变量
    
    create or replace package mypackage as
    type sp_cursor is ref cursor;
    end mypackage;
    
    --创建存储过程
    create or replace procedure sp_proc(carcode in varchar2,sp_coesor out mypackage.sp_cursor)is
    begin
    open sp_coesor for select * from gb_truck where cardcode = carcode;
    end;
    //注解,这里面的输出参数是个游标类型
    
    //java调用存储过程
    
    public static void main(String[] arg) {
       try {     Class.forName("oracle.jdbc.driver.OracleDriver");     Connection cnn = DriverManager.getConnection(
          "jdbc:oracle:thin:@192.168.1.116:1521:cwerp",
          "hu_gbxt", "hu_gbxt");
        //创建CallableStatement
          CallableStatement cs = cnn.prepareCall("{call sp_proc(?,?)}");
        cs.setString(1, "皖1958707");
        cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
        cs.execute();
        ResultSet rs = (ResultSet)cs.getObject(2);
        while(rs.next()){
         System.out.println(rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(4));     //关闭
        cs.close();
        cnn.close();
       } catch (Exception e) {
        e.printStackTrace();
       }
    
    }
    }
  • 相关阅读:
    java进阶书籍推荐(不包括基础)
    js/jquery如何获取获取父窗口的元素
    jQuery检查某个元素在页面上是否存在
    H5利用pattern属性和oninvalid属性验证表单
    zTree的使用教程
    input属性disabled和readonly的区别
    CentOS 7 安装部署 cassandra作为kairosdb的数据存储
    Jenkins部署
    CentOS 7常用命令
    虚拟机 克隆:完整克隆 模式
  • 原文地址:https://www.cnblogs.com/gavenQin/p/5583847.html
Copyright © 2011-2022 走看看