User Tools

Site Tools


oracle

Oracle DB 11g버젼 이상에서 ojdbc드라이버 사용

- JIRA 관련 이슈 URL : http://dev.eyeq.co.kr/jira/browse/TA-724

- 이전 서버에서 Oracle 11g버젼 사용했으나 서버이관 후 12c버젼으로 업그레이드 됨. 기존에 사용하던 ojdbc14 드라이버가 11g까지 서포트 가능하나 12c 이후 버젼은 server-client간 인증 프로토콜 차이로 인해 사용이 불가하기때문에 ojdbc6드라이버로 교체됨.

- pom.xml ojdbc6로 수정됨
kona-engine pom.xml
35 : <ojdbc6.version>11.2.0.4</ojdbc6.version>
602 : <dependency>
603 : <groupId>com.eyeq</groupId>
604 : <artifactId>ojdbc6</artifactId>
605 : <version>${ojdbc6.version}</version>
606 : </dependency>

10g이하 버젼에서 ojdbc14드라이버 사용을 원하는 경우 수동으로 수정해주어야 함
35 : <ojdbc14.version>10.2.0.5.0</ojdbc14.version>
602 : <dependency>
603 : <groupId>com.eyeq</groupId>
604 : <artifactId>ojdbc14</artifactId>
605 : <version>${ojdbc14.version}</version>
606 : </dependency>
(라인 수는 대략적임으로 적절히 수정한다.)

- driver가 변경됨에 따라 OracleDialert.java클래스에서 import하는 부분 수정됨
기존
9 : import oracle.jdbc.driver.OracleCallableStatement;
10 : import oracle.jdbc.driver.OracleTypes;

변경사항
9 : import oracle.jdbc.*;

- user id와 password는 동일하며, password는 대문자로 입력해야 함

- ojdbc14과 ojdbc6 차이점 : data type Date에 변경사항 있음.

ojdbc14.jar: if pl/sql returns a variable of type DATE and I try to put that in a java.sql.Date variable then everything works fine.
Example: Date annualDate = (Date) map.get(“exam_date”);

ojdbc6.jar: if pl/sql returns a variable of type DATE and I try to put that in a java.sql.Date variable then I get an
exception: java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.sql.Date
(참고사이트 : http://ask.webatall.com/oracle/14060_ojdbc14-jar-vs-ojdbc6-jar.html)

- 참고 사이트 : http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_02

oracle.txt · Last modified: 2015/06/02 12:05 by heesun