1、创建表:
create table stud(
sid int,
sname varchar2(50)
)
并插入一条数据
insert into stud values(1,'Tom')
2、创建存储过程
--创建存储过程
create or replace procedure pro_select_name(
v_sid in stud.sid%type,
v_sname out stud.sname%type
)
--声明区
is
--执行体
begin
select sname into v_sname from stud where sid = v_sid;
--异常处理
exception
when others then
dbms_output.put_line(sqlcode||sqlerrm);
end;
3、jdbc中调用
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
public class TestPro {
public void test(){
Connection con = null;
CallableStatement cst = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
//下面的tan是数据库名,默认是orcl,love是访问密码,默认是tiger
//1521是端口号,默认是1521
con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:tan","scott","love");
String sql = "{call pro_select_name(?,?)}";
cst = con.prepareCall(sql);
cst.setInt(1, 1);
cst.registerOutParameter(2, Types.VARCHAR);
cst.execute();
String name = cst.getString(2);
System.out.println(name);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(cst != null){
cst.close();
}
if(con != null){
con.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
TestPro tp = new TestPro();
tp.test();
}
}
运行结果:
Tom