귀뚜라미 GIS 재구축 프로젝트를 진행 중 마이그레이션을 해야할일이 많았다
애초에 DB도 [개발/QA/운영] 세군대라 무한 마이그레이션 반복이었다
<사전작업>
엑셀 첫 행을 테이블 컬럼명으로 교체해야한다

이렇게 첫 행이 한글명으로 되어있으면 오류터진다
여기서 테이블에 주소 컬럼밖에 없어서 구, 동, 번지 열을 합쳐야 했다
근데 또 번지 열에 공백이 섞여있어서 제거도 해야 했다.
(엑셀 관련은 다른 게시글에서 다루도록 하겠다)
엑셀은 CSV UTF-8 (*.csv) 형식으로 다시 저장한다

1. 디비버에 접속후 왼쪽 Database Navigator에서 해당 테이블을 찾는다

2. 테이블을 우클릭해서 데이터 가져오기를 누른다

3. CSV에서 가져오기 더블클릭

다음 >

여기서 추가될 데이터를 미리 볼 수 있다
저 항목1 로 되어있는건 오류가 날 수 있으니 행을 클릭하고 DELETE키를 누르면 저렇게 skip상태가 된다
이러면 해당 컬럼의 데이터는 패스하고 마이그레이션이 진행된다
다음 > 누르면 아래와 같은 창이 뜨는데

체크리스트는 두가지다
1) Do Commit after row insert 에서 10000으로 기본값이 설정되어있는거 100으로 줄임(에러나면 롤백 범위가 줄어듦)
2) Truncate target table(s) before load 이거 체크 안 돼있는 상태 유지(켜면 기존 데이터 전부 삭제됨)
다음> 누르고 진행 누르면

이러한 오류가 뜰 수 있다
내용은 ADM_ID 컬럼이 VARCHAR2(4) 인데, 엑셀에서 들어오는 값이 6자리라서 실패했다는 의미이다.
임시로라도 데이터를 넣고싶다면 건너뛰기를 누르면 실패시점 이후의 데이터는 추가되지 않는다.
'자바-백엔드' 카테고리의 다른 글
| [JPA] JPA환경에서 프로시저를 호출하려면? (StoredProcedureQuery) (0) | 2026.03.24 |
|---|---|
| [스프링] 어떤 상황에서 빈(Bean)을 사용하고 new를 사용해야 할까? (0) | 2026.03.22 |
| QueryDSL은 왜 쓰는걸까? (0) | 2026.02.06 |
| (HTTP 메서드) GET / POST / PUT / DELETE 는 select / insert / update / delete에 대응되는가? (0) | 2026.02.03 |
| 로그인 인증은 어느 계층에서 해야할까? (0) | 2025.11.14 |