Java Call PLSQL Oracle Function และ Store procedure
บทความเกี่ยวกับ : Java Call PLSQL Oracle Function และ Store procedure
ตัวอย่างการเขียนโปรแกรมด้วยภาษา Java เพื่อเรียกใช้งาน PLSQL นั้นแตกต่างจากการเขียนเพื่อ Execute SQL statement ธรรมดาอยูนิดหน่อยตามตัวอย่างครับ
ตามตัวอย่างเลยครับ แต่ถ้าเป็น Function จะเขียนอีกแบบเพราะว่า function จะไม่มี parameter out แต่จะสั่ง return ออกมา เราต้อง Call แบบนี้ครับ
ตัวอย่างการเขียนโปรแกรมด้วยภาษา Java เพื่อเรียกใช้งาน PLSQL นั้นแตกต่างจากการเขียนเพื่อ Execute SQL statement ธรรมดาอยูนิดหน่อยตามตัวอย่างครับ
CallableStatement call=null;
ResultSet rs=null;
try {
call = con.prepareCall("{call TEST_PACK.TEST_PROC(?,?,?) }");
call.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR);
call.setString(2,"10001");
call.setString(3,"TEST");
call.execute();
rs=(ResultSet)call.getResultSet();
while(rs.next()){
System.out.println(rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
call = con.prepareCall("{call TEST_PACK.TEST_PROC(?,?,?) }");
call.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR);
call.setString(2,"10001");
call.setString(3,"TEST");
call.execute();
rs=(ResultSet)call.getResultSet();
while(rs.next()){
System.out.println(rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
}
ตามตัวอย่างเลยครับ แต่ถ้าเป็น Function จะเขียนอีกแบบเพราะว่า function จะไม่มี parameter out แต่จะสั่ง return ออกมา เราต้อง Call แบบนี้ครับ
CallableStatement call=null;
ResultSet rs=null;
try {
call = con.prepareCall("{? = call TEST_PACK.TEST_FUNC(?,?) }");
call.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR);
call.setString(2,"10001");
call.setString(3,"TEST");
call.execute();
rs=(ResultSet)call.getResultSet();
while(rs.next()){
System.out.println(rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
call = con.prepareCall("{? = call TEST_PACK.TEST_FUNC(?,?) }");
call.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.CURSOR);
call.setString(2,"10001");
call.setString(3,"TEST");
call.execute();
rs=(ResultSet)call.getResultSet();
while(rs.next()){
System.out.println(rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
}