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();
       }
    
    }
    }
  • 相关阅读:
    Zabbix 3.0编译安装
    用Python发布自己的代码
    欧拉公式为世界上最完美的公式
    通过别人远端安装anaconda来说配置文件
    jupyter安装与使用
    make在latex中的妙用
    latex源码到PDF文件
    anconda配置国内源
    git命令速查
    一张色环图教你搞定配色(转)
  • 原文地址:https://www.cnblogs.com/gavenQin/p/5583847.html
Copyright © 2011-2022 走看看