只需注意一点输出参数是用CallableStatement里面的registerOutParameter方法注册进去
存储过程:
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
//在java中调用oracle的存储过程
public class JavaCallpro {
public static void main(String[] args) {
String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="scott";
String password="ztoracle";
try {
Class.forName(driver);
Connection c=DriverManager.getConnection(url, user, password);
CallableStatement cs=c.prepareCall("{call my_pro(?,?,?)}");
cs.setString(1, "9527");
cs.registerOutParameter(2, Types.VARCHAR);
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
System.out.println(cs.getString(2));
} catch (ClassNotFoundException e) {
throw new RuntimeException();
} catch (SQLException e) {
}
}
}