在java语言中调用oracle的储存函数
储存函数:
Createor replace function selectemp2(eid in number,empname out varchar,empsal outnumber)
Returnnumber
As
Begin
Selectename,sal into empname,empsal from emp where empno=eid;
Returnempsal*1.2;
End;
Java程序
importjava.sql.CallableStatement;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importoracle.jdbc.OracleCallableStatement;
publicclass TestOracle {
private static Connection conn;
static {
try {
// 第一步:加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 得到连接对象
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl","test", "test");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstatic void main(String[] args) throws SQLException{
// 参数 in out参数 通过站位符号rowType类型
CallableStatement cas =conn.prepareCall("{call selectemp1(?,?,?)}");
cas.registerOutParameter(1,oracle.jdbc.OracleTypes.NUMBER);
cas.setInt(2,7369)
cas.registerOutParameter(3,oracle.jdbc.OracleTypes.VARCHAR);
cas.registerOutParameter(4, oracle.jdbc.OracleTypes.NUMBER);
// 执行操作 Resulset rs rs true |false
cas.execute();
int annualSal=cas.getInt(3);
String name=cas.getString();
Int sal=cas.getInt(4);
System.out.println(annualSal);
System.out.println(name);
System.out.println(sal);
}