기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ 다음과 같은 Error 발생

ORA-01402: 뷰의 WITH CHECK OPTION의 조건에 위배 됩니다

 

 

발생 원인

VIEW 객체에 대한 수정은 JOB_ID='IT_PROG'인 경우에만 가능

 

 

해결 방법

1. VIEW 객체에 대한 CHECK OPTION 변경하여 REPLACE VIEW 진행

 

2. JOB_ID를 'IT_PROG'로 변경

 

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ SQL 오류: ORA-00904: "EMPLOYEE_ID": 부적합한 식별자
00904. 00000 -  "%s: invalid identifier"

 

 

발생 원인

VIEW 객체는 SELECT된 TABLE의 가상의 이미지를 저장한 것

COL_NAME을 "사원ID, 사원이름, 급여, 부서ID"으로 지정해주었으므로 COL_NAME을 VIEW 객체에 맞춰서 수정

 

 

해결 방법

COL_NAME을 VIEW 객체에 맞춰서 수정

 

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ ORA-02261: 고유 키 또는 기본 키가 이미 존재하고 있습니다
02261. 00000 -  "such unique or primary key already exists in the table"
*Cause:    Self-evident.
*Action:   Remove the extra key.

 

발생 원인

1개의  TABLE에서는 1개의 PK만 선언할 수 있음

 

 

해결 방법

PK 선언 시, 여러개의 COL을 지정할 수 있으므로 PK 삭제 후 PK 재선언

제약 조건(PK, FK, CHECK 등)은 MODIFY 개념이 없으므로 삭제 후 재 지정

 

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ ORA-00001: 무결성 제약 조건(HR.SYS_C008366)에 위배됩니다

 

 

발생 원인

IDX를 PK(UNIQUE + NOT NULL)로 선언하고나서 중복값(1)을 입력

 

 

해결 방법

PK로 선언한 IDX에 중복되지 않는 값 입력

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ ORA-00913: 값의 수가 너무 많습니다
00913. 00000 -  "too many values"

 

 

발생 원인

스칼라 서브쿼리*(SELECT B. DEPARTMENT_NAME ~ "DEPT_NM")는 단일행, 단일열을 반환해야하는데, 해당 구문에서 2개의 COL을 SELECT하여 RETURNDMF 2개 이상 받게되어 오류 발생

 

*  스칼라 서브 쿼리: SELECT 절에 사용하는 서브 쿼리로써 단순한 JOIN을 대체할 목적으로 사용되는 경우가 많음

다만, 풀 스캔 등을 유발하는 등 JOIN에 비해서 알고리즘적 성능면에서 다소 떨어지기 때문에 JOIN을 할 수 있는 경우는 JOIN을 하는 게 좋음

 

 

해결 방법

COL의 개수를 1개로 조정