package com.yinhe.edu;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;
public class CallableStatementTest {
private String driver ;
private String url ;
private String username ;
private String password ;
private Connection conn ;
private CallableStatement cstam ;
public CallableStatementTest() {
this . driver = "oracle.jdbc.driver.OracleDriver" ;
this . url = "jdbc:oracle:thin:@localhost:1521:ORCL" ;
this . username = "scott" ;
this . password = "tiger" ;
}
public void callProcedure() throws Exception {
try {
Class.forName( driver );
conn =DriverManager.getConnection( url , username , password );
cstam = conn .prepareCall( "{call getDnameByDeptno(?,?)}" );
cstam .setInt(1, 10);
cstam .registerOutParameter(2, Types. VARCHAR );
cstam .execute();
System. out .println( cstam .getString(2));
} finally {
if ( cstam != null ){
cstam .close();
}
if ( conn != null ){
conn .close();
}
}
}
public static void main(String[] args) throws Exception {
CallableStatementTest test= new CallableStatementTest();
test.callProcedure();
}
}
oracle存储过程
create or replace procedure getDnameByDeptno(varDeptno in dept.deptno% type ,varDname out dept.dname% type ) is
begin
select dname
into varDname
from dept
where deptno=varDeptno;
end getDnameByDeptno;