package hu.test;
import static org.junit.Assert.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;
import hu.db.OracleDatabase;
import org.junit.Test;
/* 存储过程 oracle调用 -----存储过程在数据库中
create or replace procedure proce_in(v_empno in emp3.empno%type,v_ename out emp3.ename%type)
as
begin
select ename into v_ename from emp3 where empno = v_empno;
dbms_output.put_line('名称是'||v_ename);
end;
//这是在数据库调用存储过程
// set serveroutput on;
// set verify off; 开启pl/sql客户端输出显示
declare
v_ename1 emp3.ename%type;
v_empno1 emp3.empno%type;
begin
v_empno1:=&empno;
proce_in(v_empno1,v_ename1);
dbms_output.put_line('名称是'||v_ename1);
end;
*/
public class ConnectionTest {
@Test
public void test() {
System.out.println(OracleDatabase.getConnection() != null);
}
@Test
public void test_procedure() {
Connection con = OracleDatabase.getConnection();//创建链接
CallableStatement call = null;
try {
call = con.prepareCall("{call proce_in(?,?)}");//调用存储过程
call.setInt(1, 7844);//设置存储过程参数----------in输入参数
call.registerOutParameter(2, Types.VARCHAR);//设置输出参数-----out 注册输出参数 (参数位置,参数类型)
call.execute();//执行存储过程调用
String ename = call.getString(2);//获取存储过程的输出参数 参数位置
System.out.println(ename);
call.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-800.html