Notice
Recent Posts
Recent Comments
Link
160x600
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- HeidiSQL
- 예측
- MariaDB
- pandas
- 해석
- 회귀모델
- python
- 정확도
- python기초
- keras
- sklearn
- 데이터전처리
- tensorflow
- 데이터베이스
- 데이터 수집
- 파싱 오류
- DB
- Database
- Deep Learning
- 머신러닝
- 데이터
- 훈련
- 데이터 분석
- sql
- pythone
- 딥러닝
- 데이터 가공
- 오라클
- 시각화
- Oracle
Archives
- Today
- Total
코딩헤딩
오라클 데이터베이스 [ORA-00904, ORA-01722, ORA-12801 + ORA-00600 / ORA-07445, ORA-10046] 오류 본문
데이터베이스/ORACLE
오라클 데이터베이스 [ORA-00904, ORA-01722, ORA-12801 + ORA-00600 / ORA-07445, ORA-10046] 오류
멈머이 2025. 8. 12. 21:24728x90
1. ORA-00933: SQL command not properly ended
- 의미 : SQL 문장이 문법 규칙에 맞게 끝나지 않음
- 원인 : 잘못된 JOIN 구문, 불필요한 세미콜론, ANSI/Oracle JOIN 문법 혼용
SELECT * FROM emp e JOIN dept d ON e.deptno = d.deptno
WHERE e.sal > 3000 ORDER BY e.ename DESC, -- 마지막에 , 잘못 기입
* 해결
- 문장 끝 불필요한 기호 제거
- ANSI JOIN과 오라클 전통 JOIN(WHERE) 혼용 피하기
2. ORA-01799: a column may not be outer-joined to a subquery
- 의미 : 외부 조인 대상이 서브쿼리인 경우
SELECT e.ename, d.dept_name
FROM emp e LEFT JOIN (SELECT * FROM dept) d
ON e.deptno = d.deptno;
-- 해결
-- 서브쿼리를 뷰나 인라인 뷰로 변경 후 JOIN
WITH dept_view AS (SELECT * FROM dept)
SELECT e.ename, d.dept_name
FROM emp e LEFT JOIN dept_view d
ON e.deptno = d.deptno;
3. ORA-02291: integrity constraint violated - parent key not found
- 의미 : 참조 무결성 위반 (외래키 대상 부모 데이터 없음)
INSERT INTO emp (empno, deptno) VALUES (1001, 50);
-- dept 테이블에 deptno=50이 없음
-- 해결
-- 부모 테이블에 먼저 데이터 입력
-- 외래키 제약 조건 확인:
SELECT constraint_name FROM user_constraints WHERE table_name='EMP';
4. ORA-02292: integrity constraint violated - child record found
- 의미 : 부모 데이터 삭제 시, 참조하는 자식 데이터가 남아 있음
DELETE FROM dept WHERE deptno=10;
-- emp 테이블에 deptno=10 직원이 남아 있음
-- 해결
-- 자식 데이터 먼저 삭제
-- 또는 외래키 ON DELETE CASCADE 설정
5. ORA-01427: single-row subquery returns more than one row
- 의미 : 단일 행 서브쿼리에서 다중 행 반환
SELECT * FROM emp
WHERE deptno = (SELECT deptno FROM dept WHERE loc='NEW YORK');
-- loc='NEW YORK'인 dept가 2개 이상이면 발생
-- 해결
-- 서브쿼리에 MAX(), MIN() 등 집계 사용
-- 또는 IN 절로 변경
6. ORA-01400: cannot insert NULL into ("TABLE"."COLUMN")
- 의미 : NOT NULL 컬럼에 NULL 값 입력 시 발생
INSERT INTO emp (empno, ename) VALUES (NULL, 'SMITH');
-- 해결
-- NOT NULL 컬럼에 반드시 값 지정
-- DEFAULT 값 설정 고려
728x90
'데이터베이스 > ORACLE' 카테고리의 다른 글
오라클 데이터베이스 [ORA-00904, ORA-01722, ORA-12801 + ORA-00600 / ORA-07445, ORA-10046] 오류 (4) | 2025.08.06 |
---|---|
오라클 데이터베이스 [ORA-06502, ORA-06503, ORA-04091] 오류 (0) | 2025.08.01 |
오라클 데이터베이스 [ORA-01536, ORA-00020, ORA-01427] 오류 (2) | 2025.06.17 |
오라클 데이터베이스 [ORA-00918, ORA-00933, ORA-01427] 오류 (0) | 2025.06.11 |
오라클 데이터베이스 [ORA-01408, ORA-14024, ORA-01031] 오류 (0) | 2025.06.10 |