-- 编写过程,要求输入雇员编号,返回雇员姓名。
create or replace procedure getNameByNo(no in number, name out varchar2) is
begin
select ename into name from emp where empno = no;
end;
-- 输入部门号,返回该部门所有员工
-- 先建一个包,定义一个游标类型
create or replace package pkg_cursor is
type my_cursor_type is ref cursor;
end pkg_cursor;
-- 创建过程
create or replace procedure getByDeptno(depno in number, emp_cursor out pkg_cursor.my_cursor_type) is
begin
open emp_cursor for
select * from emp where deptno = depno;
end;
2) java中调用的过程
a. 注册驱动类,并获取数据库连接
b. 用过程调用SQL语句(用{}括起来)获取CallableStatement对象。
c. 设置输入参数,如:cs.setInt(1, 7788);
d. 注册输出参数,如:cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
e. 执行过程cs.execute();
f. 获取过程返回结果,如:ResultSet rs = (ResultSet)cs.getObject(2);