일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 상속
- 이클립스
- Validations
- 가변인자
- Full text
- 로또
- 다형성
- Random
- 자바
- jquery
- 페이징
- while
- 추상클래스
- angular2
- 자바 야구게임
- 전체텍스트
- 전자정부
- full text indexing
- 야구게임
- 형변환
- 스프링
- 상속예제
- 25가지 효율적인 sql작성법
- Login with OAuth Authentication
- 단축키
- IBatis procedure
- 다운캐스팅
- 업캐스팅
- 전체
Archives
- Today
- Total
nalaolla
프로시져 사용한 간단 우편번호 검색기 본문
728x90
반응형
ZipCodeMain.java
- package test.com.zipcode;
- import java.sql.CallableStatement;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- public class ZipCodeMain {
- public static final String DRIVER_NAME = "oracle.jdbc.driver.OracleDriver";
- public static final String URL = "jdbc:oracle:thin:@localhost:1521:javagroup";
- public static final String USER_ID = "web_project";
- public static final String USER_PWD = "hi123456";
- public Connection getConn() {
- Connection con = null;
- try {
- Class.forName(DRIVER_NAME);
- con = DriverManager.getConnection(URL, USER_ID, USER_PWD);
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return con;
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- ZipCodeMain zm = new ZipCodeMain();
- String addr_String = "동산동";
- Connection con = zm.getConn();
- ResultSet rs = null;
- CallableStatement statement = null;
- try {
- String sql = "call UP_ZIPCODE_SEARCH(?, ?, ?)";
- statement = con.prepareCall(sql);
- statement.setString(1, addr_String);
- statement.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
- statement.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
- statement.execute();
- rs = (ResultSet) statement.getObject(2);
- while (rs.next()) {
- System.out.print(rs.getInt("zipcode") + " ");
- System.out.print(rs.getString("sido") + " ");
- System.out.print(rs.getString("sigungu") + " ");
- System.out.println(rs.getString("b_dong_name"));
- }
- System.out.println("결과물수 : " + statement.getInt(3));
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
간단히 클래스하나에서 처리한다..
자료가 잘 넘어오는지 확인용으로...
오라클 패키지 생성
- CREATE OR REPLACE PACKAGE TYPES AS --> 패키지명은 "TYPES"
- TYPE cursorType IS REF CURSOR; --> 패키지에 생성된 커서타입 REF CURSOR
- END TYPES;
오라클 프로시져 생성
- CREATE OR REPLACE PROCEDURE UP_ZIPCODE_SEARCH (
- PSEARCH_FIELD IN VARCHAR2, --SEARCH FIELD
- PLIST1 OUT TYPES.CURSORTYPE, --> 첫째 select값을 PLIST1 커서에 담는다.
- PLIST2 OUT NUMBER --> 두번째 전체 count값을 PLIST2에 담는다.
- )
- AS
- BEGIN
- --=============================================================
- --LIST1
- OPEN PLIST1 FOR --> 커서를 오픈하고 ";"까지의 select값을 담는다.
- SELECT zipcode, sido, sigungu, b_dong_name FROM ZIPCODE_NEW WHERE B_DONG_NAME LIKE '%'||PSEARCH_FIELD||'%' AND ROWNUM < 10;
- --=============================================================
- --LIST2
- SELECT count(zipcode) INTO PLIST2 FROM ZIPCODE_NEW WHERE B_DONG_NAME LIKE '%'||PSEARCH_FIELD||'%' AND ROWNUM < 10;
- --=============================================================
- END UP_ZIPCODE_SEARCH;
간략하게 작성했지만..
실적용시에는 page count와 list count등을 전달받아 paging처리가 이루어져야 한다...
그건 나중에..^^
728x90
반응형
'ORACLE' 카테고리의 다른 글
XE원격접속 설정 (0) | 2016.04.03 |
---|---|
oracle Delete 후 commit 잘못해서 데이터 날려 먹었을때 sql (0) | 2016.03.08 |
오라클 암호화/복호화 쿼리 - 유용 (0) | 2015.12.28 |
DBMS_CRYPTO를 이용한 AES256 알고리즘 암호화/복호화 (0) | 2015.12.23 |
hr스키마 테스트 (0) | 2015.12.21 |