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