1、存储过程格式(示例为有输入参数、有输出参数)
create or replace procedure p_query(i_empno in emp.empno%type,o_name out emp.name%type) as //创建存储过程p_query,并定义i_empno输入参数、o_name输出参数
//此处可以声明变量(由于简单示例,所以不声明啦)
begin
select name into i_name from emp where empno=i_empno;
end p_query;
2、调用存储过程
declare
e_empno emp.empno%type := 7899; //定义调用存储过程时的输入参数
e_name emp.name%type; //定义变量用来接收存储过程的返回值
begin
p_query(e_empno,ename); //调用存储过程
dbms_output.put_line(ename); //打印存储过程的返回值
end;
3、Java调用存储过程(首先得在Java项目中导入Oracle驱动包,百度即可)
//加载驱动
描述:此示例为模板代码,可以直接套用就可以实现存储过程的调用
Class.forName("oracle:jdbc:driver:OracleDriver");
//获取连接对象
String url="jdbc:oracle:thin:@localhost:1521:xe"; //切换数据库连接修改点 ip地址+端口号
String username=oracle;
String password=oracle123;
Connection conn=DriverManager.getConnection(url,username,password);
//补全参数
String sql="{call p_query(?,?)}";
CallableStatment call=conn.prepareCall(sql);
call.setInt(1,7899);
//注册输出参数
call.registerOutParameter(2,OracleTypes.String);
//执行存储过程
call.excute();
//获取输出参数
String name=call.getString(2);
System.out.println(name);
//释放资源
call.close();
conn.close();