오라클 프로시져를 호출/커서를 통해 직접 결과를 서 직접 받는 예제
■ test_proc Procedure
CREATE OR REPLACE PROCEDURE test_proc ( p_age IN NUMBER, p_rc OUT SYS_REFCURSOR ) IS BEGIN OPEN p_rc FOR WITH BASE AS ( SELECT 1 AS AGE, '김유신' AS NAME FROM DUAL UNION ALL SELECT 2 AS AGE, '장유신' AS NAME FROM DUAL UNION ALL SELECT 3 AS AGE, '최유신' AS NAME FROM DUAL UNION ALL SELECT 4 AS AGE, '신유신' AS NAME FROM DUAL UNION ALL SELECT 5 AS AGE, '박유신' AS NAME FROM DUAL UNION ALL SELECT 6 AS AGE, '조유신' AS NAME FROM DUAL UNION ALL SELECT 7 AS AGE, '이유신' AS NAME FROM DUAL UNION ALL SELECT 8 AS AGE, '송유신' AS NAME FROM DUAL ) SELECT AGE , NAME FROM BASE WHERE AGE > p_age ; END; /
■ com.EmpVO.java
package com; public class EmpVO { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
■ com.Params.java
package com; import java.util.List; public class Params { private int age; private String name; // 프로시져의 결과값 리턴 용도 private List<EmpVO> empList; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<EmpVO> getEmpList() { return empList; } public void setEmpList(List<EmpVO> empList) { this.empList = empList; } }
■ EmpMapper.xml
<!-- Search for Emp List --> <resultMap id="empMap" type="com.EmpVO"/> <select id="getEmpList" statementType="CALLABLE" parameterType="com.Params"> { CALL TEST_PROC ( ${age}, #{empList, mode=OUT, jdbcType=CURSOR, javaType=java.sql.ResultSet, resultMap=empMap} ) } </select>
■ EmpDAO.java
void getEmpList(Params params);
■ EmpService.java
public List<EmpVO> getEmpList(final Params params);
■ EmpServiceImpl.java
@Override public List<EmpVO> getEmpList(final Params params) { final ProfitDAO empDAO = sqlSession.getMapper(ProfitDAO.class); empDAO.getEmpList(params); return params.getEmpList(); }
■ EmpServiceTest.java
@Test public void testGetEmpList() { Params params = new Params(); params.setAge(1); List<EmpVO> empList = profitService.getEmpList(params); int i = 0; EmpVO empVO = null; Iterator<EmpVO> iterator = empList.iterator(); while( iterator.hasNext() ) { empVO = iterator.next(); System.out.println( "[mirinae.maru] EmpVO["+i+"] : " + empVO.getAge() +"\t"+ empVO.getName() ); i++; } assertTrue("결과가 있습니다.", empList.size()>0); }
■ 실행 결과
[mirinae.maru] EmpVO[0] : 2장유신 [mirinae.maru] EmpVO[1] : 3최유신 [mirinae.maru] EmpVO[2] : 4신유신 [mirinae.maru] EmpVO[3] : 5박유신 [mirinae.maru] EmpVO[4] : 6조유신 [mirinae.maru] EmpVO[5] : 7이유신 [mirinae.maru] EmpVO[6] : 8송유신
- SpringBoot Port 변경 2022년 12월 27일
- 오라클 시작, 끝 날짜 범위내 날짜 전부 출력 2021년 6월 15일
- Spring 트랜잭션 관리 2019년 6월 20일
- Spring RESTful 웹 서비스 사용하기 2019년 6월 19일
- Spring RESTful 웹 서비스 2019년 6월 19일
- Spring Scheduling Task 예제 2019년 6월 18일
- Oracle 정규표현식 REGEXP_REPLACE 예제 2019년 3월 11일
- Oracle 정규표현식 REGEXP_LIKE 예제 2019년 3월 8일
- 오라클 rowid 2019년 1월 7일
- 오라클 MERGE INTO 2019년 1월 7일
- 오라클에서 과거 최근 월요일 구하기 2019년 1월 3일
- 오라클 cube 예제 2018년 12월 13일
- 오라클 rollup 예제 2018년 12월 13일
- spring mybatis mysql 연결 예제 2018년 5월 4일
- Spring Path Parameter 예제 2018년 2월 13일
- AngularJS $http, spring TEXT response 예제 2018년 1월 17일
- 하나의 행을 여러행으로 복제, LEVEL… CONNECT BY 2017년 12월 26일
- jdom2를 이용한 spring xml response(응답) 2017년 12월 5일
- jquery xml 요청, spring xml 리턴 2017년 12월 5일
- spring controller에서 get, post 동시 허용 방법 2017년 12월 5일
- 오라클 특정 년도의 월 리스트 2017년 11월 20일
- 오라클 가로를 세로로, LISTAGG… WITH GROUP… 2017년 11월 16일
- mybatis, oracle procedure(오라클 커서)를 통한 데이터 조회 2017년 11월 6일
- HTTP 406 Not Acceptable in Spring, Jackson, Json 2017년 11월 6일
- oracle 트리구조 부모 like 검색(역검색) 2017년 10월 17일
- 오라클 버전에 관계 없이 특정 문자 개수 확인 팁 2017년 10월 11일
- 오라클 동적 멀티 뷰 생성 및 활용 예제 2017년 8월 6일
- oracle 날짜 관련 쿼리 모음 2017년 8월 6일
- 오라클 WHERE절에 CASE WHEN THEN ELSE END문 예제 2017년 8월 6일
- 쿼리로 오라클 버전 확인 2017년 8월 6일
- Toad에서 오라클 프로시져 컴파일 경고 메세지 확인 2017년 7월 29일
- ServletContextLister를 구현한 웹 애플리케이션 시작 시 작업 2016년 5월 2일
- Web Application MessageResource 2016년 3월 8일
- org.mariadb.jdbc.internal.common.QueryException : No database selected 2016년 2월 19일
- jquery spring – checkbox로 선택된 배열 주고 받기 2015년 8월 15일
- jquery spring ajax call 2015년 8월 15일
- spring json return 2015년 8월 15일
- spring exception – SimpleMappingExceptionResolver 2015년 8월 8일
- 오라클 테이블 컬럼 추가,수정,삭제 2015년 1월 2일
- 오라클 테이블 컬럼 주석 추가 2015년 1월 2일
- 오라클 테이블 생성 스크립트 2014년 12월 31일
- 오라클 테이블스페이스 생성, 사용자 추가 2014년 12월 31일