/* Oracle Server에 작성된 Function */
/* Employees Table에서 이름을 넘겨주면 나이를 Return하는 함수 */ /* Employees Table LayOut */
SQL> desc employees;
이름 널? 유형
----------------------------------------- -------- ----------------------------
NUM NOT NULL NUMBER(5)
NAME NOT NULL VARCHAR2(15)
PHONE VARCHAR2(20)
SEX NOT NULL VARCHAR2(1)
AGE NUMBER(2)
function employ_age (v_name in employees.name%TYPE) return number
is
v_age number(3) := 0;
begin
select age into v_age from employees
where name = v_name;
return v_age;
exception
when no_data_found or too_many_rows then
return v_age;
end;
// storedprocedure.html
//action 부분은 적당히 수정하세요
<html>
<head><title>Stored Procedure Call Test </title></head>
<body>
<form name=myform action=/servlet/StoredProcedure method=get>
성명 : <input type=text name=name>
<input type=submit>
</form>
</body>
</html>
/* StoredProcedure.java */
/* Oracle의 Stored Procedure를 JDBC로 이용하는 예제입니다. StoredProcedure.java*/
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class StoredProcedure extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Connection con = null;
Statement stmt = null;
res.setContentType("text/html; charset=euc-kr");
PrintWriter out = res.getWriter();
try {
// 오라클 드라이버를 Load 한다
Class.forName("oracle.jdbc.driver.OracleDriver");
// 데이타 베이스에 접속을 한다.
con = DriverManager.getConnection("jdbc:oracle:thin:@211.53.71.228:1521:wink", "scott", "tiger");
// Statement object를 생성한다.
CallableStatement cstmt = con.prepareCall("{? = call employ_age(?) }");
//Stored Procedure의 input value의 setting및 output value의 type설정
cstmt.registerOutParameter(1,Types.INTEGER);
cstmt.setString(2, han(req.getParameter("name"))); //Procedure의 parameter setting
cstmt.execute(); //CallableStatement 실행
int age = cstmt.getInt(1);
out.println("요청하신 " + han(req.getParameter("name")) + " 님의 나이는 " + age + " 입니다.");
}
catch(ClassNotFoundException e) {
out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e) {
out.println("SQLException caught: " + e.getMessage());
}
finally { // 언제나 데이타 베이스 연결을 종료한다.
try { if (con != null) con.close(); }
catch (SQLException ignored) { }
}
}
//한글변환 함수
public static String han(String Unicodestr) throws UnsupportedEncodingException {
if( Unicodestr == null)
return null;
return new String(Unicodestr.getBytes("8859_1"),"KSC5601");
}
}
기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… | 12-27 | 1639 | ||
[채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1165 | ||
53 | [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… | 03-15 | 924 | |
52 | [주말주간]C#, ASP.NET마스터 | 01-31 | 1088 | |
51 | [평일,기업100%환급]SQL기초에서 Schema Object까지 | 01-31 | 827 | |
50 | [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 | 01-31 | 784 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 | 01-19 | 1055 | |
48 | [평일주간,평일야간,주말]안드로이드개발자과정 | 01-11 | 953 | |
47 | [평일야간,주말주간]JAVA,Network&WEB&Framework | 01-03 | 1459 | |
46 | 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/jQUERY개발… | 12-27 | 1639 | |
45 | [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… | 12-19 | 1184 | |
44 | 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) | 12-14 | 1185 | |
43 | [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1165 | |
42 | [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 | 12-09 | 937 | |
41 | [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1095 | |
40 | [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… | 12-01 | 1359 | |
39 | [평일야간,주말,주말야간]SQL기초에서실무까지(SQL기초,PLSQL,힌… | 12-01 | 829 |
댓글 없음:
댓글 쓰기