存储过程以及Java调用存储过程

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();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。