存储过程的调用
来源:互联网 发布:小说编辑软件 编辑:程序博客网 时间:2024/05/20 01:36
- 存储过程的调用
--oracle create or replace procedure queryempifo(no in number,pname out varchar2, psale out number, ptype out number)asbegin select sname,sale,stype into pname,psale,ptype from emp where empno=no;end;/--java Connection con = null;CallableStatement cst = null;try { con = DB.getInstance().getConnection(); cst = con.prepareCall("{call queryempifo(?,?,?,?)}"); //输入参数cst.setInt(第几个参数,参数值); cst.setInt(1, 123); //输出参数 cst.registerOutParameter(2, OracleTypes.VARCHAR); cst.registerOutParameter(3, OracleTypes.NUMBER); cst.registerOutParameter(4, OracleTypes.NUMBER); cst.execute(); String result = cst.getString(1); } catch (Exception e) { }finally{ }
- 存储函数的调用
//存储函数create or replace function queryprice(no in number)return numberas psale emp.sale%type; pp emp.prize%type;begin select sale,prize into psale,pp from emp where empno=no; return psale*12+pp;end;@Testpublic void test(){ Connection conn = null; CallableStatement cs = null; try { conn = ConnectionManager.getConnection(); String sql = "{?=call queryprice(?)}"; cs = conn.prepareCall(sql); cs.registerOutParameter(1, OracleTypes.NUMBER); cs.setInt(2, 1); cs.execute(); double sale = cs.getDouble(1); System.out.println(sale); } catch (Exception e) { e.printStackTrace(); } finally { ConnectionManager.closeAll(conn, cs, null); }}
- 调用包内的存储函数(返回一个结果集)
//创建包create or replace package mypackage as--定义empcursor为cursor类型 type empcursor is ref cursor; procedure queryemplist (ty in number,emplist out empcursor);end mypackage;//创建包体create or replace package body mypackage is procedure queryemplist (ty in number,emplist out empcursor) as begin open emplist for select * from emp where stype=ty; end queryemplist;end mypackage;Java代码调用@Testpublic void test(){ Connection conn = null; CallableStatement cs = null; ResultSet rs = null; try { conn = ConnectionManager.getConnection(); cs = (CallableStatement) conn.prepareCall("{call mypackage.queryemplist(?,?)}"); //设置输出参数的值 cs.setInt(1, 1); cs.registerOutParameter(2, OracleTypes.CURSOR); cs.execute(); //取数据 rs = ((OracleCallableStatement)cs).getCursor(2); if (rs != null) { hile (rs.next()) { System.out.println(rs.getString("sale")); } } } catch (SQLException e) { e.printStackTrace(); }finally{ ConnectionManager.closeAll(conn, cs, null); }}
- 本地cmd存储过程测试
1.sqlplus连接数据库:conn user/pasword
2.cls清除命令行中的内容: host cls
3.打开屏幕的初始开关:set serveroutput on
4.调用存储过程:
–方法1
exec sayhelloword();
–方法2
begin
sayhelloword();
end;
/
0 0
- 存储过程的调用
- 存储过程的调用
- 存储过程的调用
- 存储过程的调用!
- 存储过程的调用
- 存储过程的调用
- 存储过程的调用
- 存储过程的调用
- 存储过程的调用
- 我调用的存储过程
- 存储过程的互相调用
- 公共的调用存储过程
- Oracle存储过程的调用
- Oracle存储过程的调用
- Oracle存储过程的调用
- plsql存储过程的调用
- 测试存储过程的调用
- 调用存储过程的ExecProc
- selenium:chromedriver与chrome版本的对应关系
- 单点登录(手写php代码)
- 圈复杂度
- 图片超过边框大小时截取图片中间部分
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- 存储过程的调用
- ListView的一些属性
- 第一章 C语言编程(Ivor Horton)
- idea 鼠标悬浮时显示文档信息提示框
- 访问我的github博客sanjay-f.github.io
- 国籍库,省市库
- 第十三届小波智能媒体技术与信息处理国际学术会议征文通知
- popwindow底部弹窗
- 微信小程序开发遇到的错误总结