본문 바로가기

노력을 이기는 재능은 없고
노력을 외면하는 결과도 없다.
- 이창호 9단

E R R O R/Oracle Error

[Oracle Error] ORA-00947: not enough values 00947. 0000 - "not enough values", 값의 수가 충분하지 않습니다

  Junesker   2022. 8. 8.
반응형

ORA-00947: not enough values

ORACLE 데이터베이스에서 데이터 삽입중에 발생한 에러이다. 다른 Insert구문에는 문제가 없었는데 특정 Insert 구문에만 오류가 발생했다. 오타이겠거니 확인해봤지만 오타는 없었다. 그래서 어디가 잘 못됬는지 확인한결과, Insert 구문 여러개를 ','로 구문하여 한줄씩 실행하고 삭제하는 과정에서 맨 마지막 Insert 구문에 컬럼 대비 데이터를 넣어 데이터 삽입중에 컬럼과 데이터의 값이 정확하게 매칭되지 않아 발생했던 에러였다. 오타가 아니었다고 생각했는데, 컬럼이 5개면 데이터도 5개로 매칭을 했어야하는데 데이터 부분에 4개로 1개를 빠뜨린것이다. 그래서 '값의 수가 충분하지 않습니다.'라는 에러가 출력됐다.

 

 

 

 

 

처리결과
Insert시, 컬럼 갯수에 맞춰 데이터를 삽입해야하는데 데이터 갯수가 컬럼 갯수와 달라서 발생한 에러.
삽입 시 설정한 컬럼수와 매칭된 데이터 수를 맞춰주었다.

 

 

 

 

 

예를 들어 설명하겠습니다. Board 테이블을 작성한다고 가정한다. Board테이블의 컬럼은 bo_no, bo_title, bo_content, bo_writer, bo_date, bo_hit 으로 이뤄져 있고, bo_no,bo_title,bo_content,bo_writer,bo_date,bo_hit 모두 데이터를 삽입한다고 가정하면 컬럼은 총 6개이므로 데이터도 6개의 컬럼에 맞는 매칭된 데이터를 삽입해주면 된다.

 

(X)  INSERT INTO BOARD VALUES(SEQ_BOARD.NEXTVAL, '제목입니다', '작성자입니다', SYSDATE, 0);
(O)  INSERT INTO BOARD VALUES(SEQ_BOARD.NEXTVAL, '제목입니다', '내용입니다' '작성자입니다', SYSDATE, 0);

 

 

 

 

 

@Junesker


 

반응형

댓글