자바에서 오라클 프로시저 또는 패키지 호출 방법
package 패키지명;
import java.sql.CallableStatement; // 필요한 애들 import
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class CityConv {
private static CityConv fosen = new CityConv();
//객체 반환
public static CityConv getFosen(){
return fosen;
}
//생성자
private CityConv(){}
//디비 연결
private Connection getConnection()throws Exception{
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
//DataSource ds = (DataSource)envCtx.lookup("jdbc/HanatourMySQL");
DataSource ds = (DataSource)envCtx.lookup("jdbc/testDB");
return ds.getConnection();
}
public void updateCity(City city) throws Exception{
Connection conn = null;
CallableStatement cs3 = null;
try{
conn=getConnection();
String sql = "{call PKG_INFO_ADMIN.SPL_AD_33100(?,?,?,?,?,?,?,?,?,?,?)}"; // 프로시저 또는 패키지 호출
//EXEC PKG_INFO_ADMIN.SPL_AD_33100('BC8','테스트','TEST1','BC8, 테스트, TEST, 테스트 목적입니다.','N','N','+0900','2008/01/01 00:00','2008/12/10 00:00',0,'');
cs3 = conn.prepareCall(sql);
cs3.setString(1,city.getCityCode());
cs3.setString(2,city.getCityKname());
cs3.setString(3,city.getCityEname());
cs3.setString(4,city.getSearchCityName());
cs3.setString(5,city.getCountryCapitalYn());
cs3.setString(6,city.getStateCapitalYn());
cs3.setString(7,city.getGmtTime());
cs3.setString(8,city.getDstStartDate());
cs3.setString(9,city.getDstEndDate()); // 여기까지는 IN
cs3.registerOutParameter(10,java.sql.Types.INTEGER);
cs3.registerOutParameter(11,java.sql.Types.VARCHAR); // 여기까지는 OUT 오라클 프로시져 또는 패키지 실행 후 리턴값 받기
cs3.executeUpdate(); // 쿼리 실행시키고
int outParameter1 = cs3.getInt(10);
String outParameter2 = cs3.getString(11); // 값 받아 주시고
}catch(SQLException ex){
System.out.println("false");
System.out.println("Exception" + ex);
}finally{
if(cs3 != null) try {cs3.close();} catch(SQLException ex){}
if(conn != null) try {conn.close();} catch(SQLException ex){}
}
}
}
리턴값 받아서 프로시져 or 패키지에서 처리함
'database > oracle' 카테고리의 다른 글
오라클 10g 설치 가이드 (0) | 2012.03.22 |
---|---|
트리거 조회 (0) | 2012.03.22 |
오라클에서 쿼리 실행결과 저장하기 방법 (0) | 2012.03.22 |
Oracle 10g Express Edition 현재 설치 설정 (0) | 2012.03.22 |
테스트 이용자DB 구축하기 (0) | 2012.03.22 |