반응형
ORA-00913 : 값의 수가 너무 많습니다
"too many values"
데이터 확인을 위해 SQL 질의문을 작성하다 보면 가끔씩 마주치는 오류이다.
+ 해당 오류는 INSERT 과정에서도 발생한다.
-- SELECT 과정에서 ORA-00913 오류 발생
SELECT
*
FROM
TB_USER
WHERE
USER_NO = (
SELECT USER_NO,
USER_NM
FROM TB_USER
WHERE USER_NO = ?
)
--------------------------
-- INSERT 과정에서 ORA-00913 오류 발생
INSERT INTO TB_USER (
USER_NO,
USER_NM
) VALUES (
'ID000001',
'김헌일',
'kimheonil'
)
해당 오류가 나는 이유는 여러가지겠지만 대표적으로 두가지다.
1. 데이터 조회 중 하나의 조건에 여러가지 값이 들어가는 경우
예시를 보면 USER_NO 컬럼값으로 데이터를 조회하려고 하는데, 서브쿼리에 들어간 컬럼의 수는 2개라서 SELECT 과정에서 ORA-00913 오류 발생
2. 데이터 삽입 시 컬럼의 갯수가 상이한 경우
아래의 두번째 예시를 보면 INSERT 문에 명시된 컬럼은 두개지만, 실제로 삽입하려고 하는 값은 3개라서 INSERT 과정에서 ORA-00913 오류 발생
해결법은 매우 간단하다!
SELECT 과정에서 오류가 발생했다면, 서브쿼리를 잘 살펴보고 쿼리문 안에 여러개의 컬럼이 있는지 확인해보고 있다면 지워주면 된다.
INSERT 과정에서 오류가 발생했다면, 내가 명시한 컬럼보다 더 많은 값을 집어넣으려고 하지 않았는지 확인해보고 컬럼 개수에 맞게 값의 개수도 수정해주면 된다.
아래는 예시이다!
-- SELECT 과정에서 ORA-00913 오류 발생 수정
SELECT
*
FROM
TB_USER
WHERE
USER_NO = (
SELECT USER_NO
-- , USER_NM
FROM TB_USER
WHERE USER_NO = ?
)
--------------------------
-- INSERT 과정에서 ORA-00913 오류 발생 수정
INSERT INTO TB_USER (
USER_NO,
USER_NM,
USER_ID
) VALUES (
'ID000001',
'김헌일',
'kimheonil'
)
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle | 오라클] ORA-12899 : 열에 대한 값이 너무 큼 오류 (0) | 2022.08.10 |
---|---|
[Oracle | 오라클] ORA-01400 : NULL을 (~) 안에 삽입할 수 없습니다. 오류 (0) | 2022.08.10 |
[Oracle | 오라클] ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 오류 (0) | 2022.08.09 |
[Oracle] 오라클 테이블 정보 및 컬럼 정보 조회 쿼리 (0) | 2021.08.12 |
[Oracle] 자바에서 오라클을 사용하기 위한 JDBC (0) | 2020.10.09 |