에러 메시지


ora-30036 : unable to extend segment by 4 in undo tablespace



원인 


rollback할 데이터를 저장하는 undo tablespace가 부족해서 생기는 에러

주로 많은 양의 데이터를 update, insert, delete 할 때 발생



해결방법


1. undo tablespace를 확장


alter tablespace <undotablespace 이름> add datafile <'경로'> size <추가할 용량> <m | k>;


예시)

1
alter tablespace UNDOTBS1 add datafile 'C:/oraclexe/app/oracle/oradata/XE/UNDOTBS5.DBF' size 10m;
cs


이 방법은 기존에 있는 undo tablespace의 용량을 확장하는 방법이다.

이 방법 외에 용량이 큰 새로운 undo tablespace를 만드는 방법도 있다.



2. 쿼리문의 로직을 작은 단위로 잘라서 실행


이 오류는 update, delete, insert를 통해 한 번에 실행되는 데이터 양이 많아서 undotablesapce가 모자라기 때문에 발생하는 것이다.

이를 해결하기 위해 쿼리를 작은 단위로 나누어서 실행해주고 commit을 해주면 된다.


에러메세지


Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.


원인


Safe Update 모드 설정시에는 키 컬럼으로만 데이터를 update 가능


해결


safe update 모드를 해지한다.


set sql_safe_updates=0;

Spring JDBC를 이용해서 데이터를 불러 올 때, 일어나는 오류


EmptyResultDataAccessException


Spring JDBC를 이용할 때,

 repository의 메서드를 호출하여 DB의 데이터를 불러 올 때,

일치하는 데이터가 실제로 없을 때 일어나는 오류.


예상되는 데이터는 1개이지만 실제로는 데이터 0개가 나올 때 발생하는 오류





해결방법


repository에서 catch ~ try를 묶어서 처리해도 되지만, 오류를 일으키는 곳인 controller에서

오류를 처리하는 것이 바람직하다.











'Error note' 카테고리의 다른 글

[Oracle]ora-30036 : unable to extend segment by 4 in undo tablespace  (0) 2017.01.12
[Mysql]Error code 1175  (0) 2017.01.02

+ Recent posts