为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle存储过程和自定义函数

难度初级
时长 1小时33分
学习人数
综合评分9.83
104人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.7 逻辑清晰
  • /** * 测试存储函数 * 传入员工编号,返回员工年收入 * create or replace function queryemp_income(eno number) return number * @throws Exception */ @Test public void testFunction() throws Exception { String sql="{?=call queryemp_income(?)}"; Connection conn=null; CallableStatement st=null; try { conn=JdbcUtils.getConnection(); st=conn.prepareCall(sql); st.setInt(2, 7839); st.registerOutParameter(1, OracleTypes.NUMBER); st.execute(); double income = st.getDouble(1); System.out.println("编号为7839的员工的年收入是"+income); } catch (Exception e) { e.printStackTrace(); }finally{ JdbcUtils.close(conn, st, null); } }
    查看全部
  • /** * 测试存储过程 * 传入参数:eno(员工编号) * 输出参数:ename(姓名) * sal(月薪) * empjob(职位) * create or replace procedure pro_queryemp(eno in number,ename out varchar2,sal out number,empjob out varchar2) * @throws Exception */ @Test public void testProcdure() throws Exception { String sql="{call pro_queryemp(?,?,?,?)}"; Connection conn=null; CallableStatement statement=null; try { conn=JdbcUtils.getConnection(); statement=conn.prepareCall(sql); //传入in参数——员工编号 statement.setInt(1, 7839); //声明out参数的类型 statement.registerOutParameter(2, OracleTypes.VARCHAR); statement.registerOutParameter(3, OracleTypes.NUMBER); statement.registerOutParameter(4, OracleTypes.VARCHAR); //执行存储过程 statement.execute(); String ename = statement.getString(2); int salary = statement.getInt(3); String empjob = statement.getString(4); //输出查询结果 System.out.println(ename+"\t"+salary+"\t"+empjob); } catch (Exception e) { e.printStackTrace(); }finally{ JdbcUtils.close(conn, statement, null); }}
    查看全部
  • oracle——jdbc连接字符串
    查看全部
    0 采集 收起 来源:概述

    2016-07-06

  • /** * 释放资源 * @param conn * @param st * @param rs */ public static void close(Connection conn,Statement st,ResultSet rs){ if (rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs=null; } } if (st!=null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ st=null; } } if (conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ conn=null; } } }
    查看全部
    0 采集 收起 来源:概述

    2016-07-06

  • 存储过程和存储函数的参数——out参数
    查看全部
    0 采集 收起 来源:[Oracle] out参数

    2016-07-06

  • --查询某个员工的年收入 create or replace function queryemp_income(eno number) return number as --定义变量接收薪水和奖金 p_sal emp.sal%type; p_comm emp.comm%type; begin select sal,comm into p_sal,p_comm from emp where empno=eno; --nvl为遇空函数,如果p_comm为空则返回0 return nvl(p_comm,0)+p_sal*12; end; /
    查看全部
  • 设置sqlplus显示的宽度: set linesize 300;
    查看全部
  • 存储函数的定义:
    查看全部
  • 存储过程的调试:<br> 1、用sys账户登录为scott用户授权:grant DEBUG CONNECT SESSION ,DEBUG ANY PROCEDURE to scott;<br> 2、编译以进行调试;
    查看全部
  • --带参数的存储过程 --给指定的员工涨100 create or replace procedure proc_raise_sal(eno in number) as --定义一个变量保存涨前的薪水; p_sal emp.sal%type; begin select sal into p_sal from emp where empno=eno; update emp set sal=sal+100 where empno=eno; --为保证调用存储过程的外部程序的一致性 --一般不在存储过程和存储函数中commit或rollback,谁调用谁commit dbms_output.put_line('涨工资完成'); end; /
    查看全部
  • 存储过程的2种调用方式:
    查看全部
  • 存储过程语法:
    查看全部
  • 存储过程和存储函数:
    查看全部
  • 存储函数与存储过程结构类似,但是存储函数有一个返回值,其结构如下: CREATE OR REPLACE FUNCTION function_name(variable...) RETURN return_type AS ... 函数程序体;
    查看全部
  • OUT参数
    查看全部
    0 采集 收起 来源:[Oracle] out参数

    2016-06-26

举报

0/150
提交
取消
课程须知
小伙伴们,学习本门课程需要具备PL/SQL基础,可以移步《Oracle数据库开发必备利器之PL/SQL基础》课程。除此以外,在课程中涉及到存储过程和存储函数在Java项目中的应用,因此需要小伙伴们具备Java基础并熟悉JDBC。
老师告诉你能学到什么?
1、存储过程和存储函数的创建和调用 2、存储过程和存储函数在Java项目中的应用 3、如何在应用程序中访问包下的存储过程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!