-
/** * 测试存储函数 * 传入员工编号,返回员工年收入 * 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连接字符串查看全部
-
/** * 释放资源 * @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; } } }查看全部
-
存储过程和存储函数的参数——out参数查看全部
-
--查询某个员工的年收入 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/150
提交
取消