[MyBatis/Oracle] Sequence를 포함한 Bulk Insert(다중 행 삽입)
·
💾 DataBase
처음에는 아래와 같은 방법으로 다중 행 삽입을 구현했었다.오라클의 INSERT ALL과 MyBatis의 foreach를 혼합 사용하여 INSERT ALL 이후의 INTO ~ VALUES를 반복하는 것이다. 이 테이블은 REPORT_MEMBER 시퀀스 값을 가져와 PK로 사용하는데,이처럼 INSERT 시 시퀀스를 사용하는 경우에는 일반적인 BULK INSERT를 사용할 수 없다.(하나의 행으로 인식하여 시퀀스를 한 번만 호출함. 무결성 오류 발생)### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(INTERN_TASK.PK_REPORT_MEMBER)에 위배됩니다  ..
[MyBatis] Oracle 시퀀스 생성 방법 (useGeneratedKeys)
·
💾 DataBase
MyBatis에서는 일반적으로 useGeneratedKeys를 이용하여 데이터베이스의 기본 키(PK)를 자동으로 생성할 수 있다. 하지만 Oracle의 경우 useGeneratedKeys 시퀀스를 이용해 기본 키를 생성할 수 없어 SELECT를 통해 시퀀스를 직접 호출해야 한다. 기존 코드 : useGeneratedKeys 사용 INSERT INTO INTERN_TASK.REPORT ("service_code", "name", "recognition_date", "occurrence_date", "impact_date", "restore_date", "impact_system", "impact_url", "situation..
[Oracle] Linux CentOS 8 서버에 Oracle DB 설치하기
·
💾 DataBase
Reason : ORA-28040: No matching authentication protocol Oracle DB에 접속하려하니 위와 같이 ORA-28040 에러가 발생하여 구글링한 결과, 서버와 클라이언트의 오라클 버전이 달라 발생하는 문제라고 한다. 역시 리눅스는 버전 하나하나가 정말 중요하다는 걸 다시 깨닫게 된듯. Oracle 11g 버전을 사용해야 하는데, 오라클 홈페이지에서는 21버전까지 나와 레거시가 19c인가? 아무튼 더이상 11g 버전을 배포하지 않아서 유저들이 포럼에 올린(백업용) 파일로 다운하였다. oracle-xe-11.2.0-1.0.x86_64.rpm.zip 다운로드한 파일을 서버에 넣고, 압축을 해제하여 설치를 진행한다. 아래 명령을 실행하여 압축을 풀면 Disk1이라는 폴더..