iBatis 에서 CLOB, LONG 처리 안된다.
Handler 등록해서 된다고 하는데 안된다고 하는 사람도 있다.
시간도 없고 해서 아예 iBatis Handler 테스트 해보다가 제외 시키고
ibatis 에서 connection 을 얻어와 PreaparedStatement 로 구현했다.
근데 문제...
데이터 타입에 대한 제약사항을 검토를 하지 않았던 것이다.
Long, CLOB ... 둘 다 Group by 안된다.
그러니까 group by 해야 한다면 테이블 따로 떼서 써야 한다.
그런데 LONG 의 문제는 Where 조건 자체가 안되므로 Like 검색을 할 수가 없다는 것.
-ㅅ-;;; 난 검색되어야 해!!!! ㅠㅠㅠ
그래서 LONG 으로 테스트 했던거 다시 CLOB 으로 테스트하는 삽질이 발생.
아 놔..
암튼, iBatis 로 4000Byte 가 넘는 데이터때문에 CLOB, LONG 으로 처리 할 수 밖에 없다면,
1. 적정한 데이터타입이 무엇인지 고민해봐야 나같은 삽질을 방지할 수 있다.
**제약사항
PL/SQL LOG Types(locator) vs LONG< LOGN RAW data type 으로 네이버에서 검색하여
Good Start Education 카페의 게시글을 참고해본다.
**CLOB 제약사항
http://blog.naver.com/muscle1?Redirect=Log&logNo=10017426564
2. Handler 한번 찾아서 작성해보길.( myBatis 는 되는거 같음... )
- Handler 하나 만든다고 해서 되는게 아니라 parameterMap, resultMap 도 신경써서 테스트를 해봐야 하므로 공수가 좀 걸린다.( 나도 조금 해보다가 시간이 촉박하여 다른 방법으로 갈아탐. )
3. jdbc library 를 상위 드라이버로 변경( 강력추천 )
실서버의 oracle 버전이 10g 인 관계로 드라이버를 10.2.0.5 버전으로 업데이트 했다.
그러니 핸들러 없이 iBatis 에서 동작한다. 야홋!!!!
- http://cafe.naver.com/sollog.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19&
4. PreparedStatement 를 이용하여 구현을 생각한다.
**INSERT/UPDATE
- http://blog.naver.com/endstar7?Redirect=Log&logNo=100048393263
- http://blog.bagesoft.com/728 ( Long 형... 아주 잘 들어간다. )
'SQL > ORACLE 4000Byte 이상 처리' 카테고리의 다른 글
oracle Long 타입 필드에 4000자 이상 넣기 (0) | 2015.10.15 |
---|---|
oracle 4000자 이상 넣기 (0) | 2015.10.15 |
st_geometry 사용시 오라클 select 4000자 이상 에러. (0) | 2015.10.15 |