今天寫的這個是在java語言中調用oracle的儲存過程,
首先先建一個儲存過程
Createor replace procedure selectemp(eid number,empname out varchar,empsal outnumber)
As
begin
Selectename,sal into empname,empsal from emp where empno=eid;
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();
}
}
public static void main(String[] args) throwsSQLException {
// 參數 in out參數 通過站位符號
CallableStatement cas = conn.prepareCall("{callselectemp(?,?,?)}");
// 從1開始
int index = 1;
// 爲佔位符賦值
cas.setInt(index++, 7369);
// 輸出參數
cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.VARCHAR);
cas.registerOutParameter(index++,oracle.jdbc.OracleTypes.NUMBER);
// 執行操作 Resulset rs rs true |false
boolean flag = cas.execute();
// 判斷
if (!flag) {
String name = cas.getString(2);
int sal = cas.getInt(3);
System.out.println(name);
System.out.println(sal);
}
}