이번 글에서는 ORA-00947: not enough values 에러 해결 방법에 대하여 알아보도록 하겠습니다.
ORA-00947: not enough values
ORA-00947: 값의 수가 충분하지 않습니다.
데이터를 추가하는데 아래와 같은 에러가 발생하였습니다.
예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.
아래의 쿼리는 DEPT 테이블에 값을 추가하는 예제입니다.
위의 쿼리를 실행하니 ORA-00947: not enough values 에러가 발생하였습니다.
이 에러가 발생한 이유는 삽입하려는 값들과 테이블의 컬럼 수가 일치하지 않아서입니다.
위의 쿼리를 보면 VALUES 값에 55와 'TEST' 두 개의 값을 주었습니다.
하지만, DEPT의 컬럼은 DETPNO, DNAME, LOC 으로 총3개 입니다.
따라서, 삽입하려는 데이터의 개수가 DEPT 테이블의 컬럼 수와 맞지 않아서 발생하는 에러입니다.
해결 방법
1. INSERT INTO 테이블명(컬럼1, 컬럼2) VALUES(컬럼1에 들어갈 값, 컬럼2에 들어갈 값)
2. INSERT INTO 테이블명 VALUES(테이블의 컬럼의 수에 맞게 데이터 삽입)
주로 사용하는 해결방법은 1번입니다. 테이블명에 컬럼을 지정하여 INSERT 문을 작성합니다.
테이블에 컬럼을 지정하여 값을 추가해보겠습니다.
에러 없이 DEPT 테이블에 위와 같이 데이터가 추가된 것을 볼 수 있습니다.
LOC 컬럼은 지정하지 않았고 값을 주지 않았기 때문에 NULL이 들어갔습니다.
위와 같은 방법으로 테스트 데이터를 추가하거나 툴을 이용하여 데이터를 추가하는 경우가 많습니다.
Reference