728x90
반응형
SMALL
1. ORA-00942: Table or View does not exist
특징:
- 지정한 테이블 또는 뷰가 존재하지 않거나 권한이 없는 경우 발생.
해결방법:
- 테이블/뷰 이름이 올바른지 확인.
- 해당 테이블에 대한 권한이 있는지 확인.
예시 코드:
-- 원인 코드
SELECT * FROM non_existent_table;
-- 해결 방안
-- 1. 테이블이 존재하는지 확인
CREATE TABLE example_table (id NUMBER);
-- 2. 권한 부여
GRANT SELECT ON example_table TO user_name;
2. ORA-00001: Unique Constraint Violated
특징:
- UNIQUE 제약 조건이 있는 열에 중복 데이터를 삽입하려고 할 때 발생.
해결방법:
- 중복 데이터를 제거하거나 고유 값을 삽입.
예시 코드:
-- 원인 코드
CREATE TABLE unique_example (id NUMBER UNIQUE);
INSERT INTO unique_example VALUES (1);
INSERT INTO unique_example VALUES (1); -- 에러 발생
-- 해결 방안
-- 중복 데이터 제거
INSERT INTO unique_example VALUES (2);
3. ORA-00904: Invalid Identifier
특징:
- SQL 문에서 존재하지 않는 열을 참조하거나 잘못된 열 이름을 사용한 경우 발생.
해결방법:
- SQL 문에서 열 이름이 정확한지 확인.
예시 코드:
-- 원인 코드
SELECT invalid_column FROM example_table;
-- 해결 방안
-- 올바른 열 이름 사용
SELECT id FROM example_table;
4. ORA-01017: Invalid Username/Password; Logon Denied
특징:
- 잘못된 사용자 이름 또는 비밀번호로 데이터베이스에 접속하려고 할 때 발생.
해결방법:
- 사용자 이름과 비밀번호를 확인.
예시 코드:
-- 원인 코드
CONNECT user_name/invalid_password;
-- 해결 방안
-- 올바른 사용자 이름과 비밀번호 사용
CONNECT correct_user/correct_password;
5. ORA-02291: Integrity Constraint Violated - Parent Key Not Found
특징:
- 외래 키 참조 무결성을 위반할 때 발생.
해결방법:
- 부모 테이블에 참조 데이터가 있는지 확인 후 삽입.
예시 코드:
-- 원인 코드
CREATE TABLE parent_table (id NUMBER PRIMARY KEY);
CREATE TABLE child_table (id NUMBER, parent_id NUMBER REFERENCES parent_table(id));
INSERT INTO child_table VALUES (1, 99); -- 에러 발생
-- 해결 방안
INSERT INTO parent_table VALUES (99);
INSERT INTO child_table VALUES (1, 99);
6. ORA-01555: Snapshot Too Old
특징:
- 오래된 데이터를 읽으려 할 때 발생 (UNDO 공간 부족).
해결방법:
- UNDO 테이블스페이스 크기 증가.
예시 코드:
-- 원인 코드
-- 긴 트랜잭션 중 발생
SELECT * FROM large_table WHERE condition;
-- 해결 방안
-- UNDO 테이블스페이스 크기 증가
ALTER DATABASE DATAFILE 'undo_tablespace_path' RESIZE 2G;
7. ORA-01722: Invalid Number
특징:
- 문자열을 숫자형으로 변환하려고 할 때 발생.
해결방법:
- 데이터 형식 확인 및 변환.
예시 코드:
-- 원인 코드
SELECT TO_NUMBER('abc') FROM dual;
-- 해결 방안
-- 올바른 데이터 형식 사용
SELECT TO_NUMBER('123') FROM dual;
8. ORA-04098: Trigger is Invalid and Failed Re-validation
특징:
- 유효하지 않은 트리거로 인해 발생.
해결방법:
- 트리거를 디버그 및 재컴파일.
예시 코드:
-- 원인 코드
CREATE OR REPLACE TRIGGER invalid_trigger
BEFORE INSERT ON example_table
BEGIN
NULL; -- 오류 발생
END;
-- 해결 방안
-- 트리거 수정
CREATE OR REPLACE TRIGGER valid_trigger
BEFORE INSERT ON example_table
FOR EACH ROW
BEGIN
-- 유효한 작업 수행
DBMS_OUTPUT.PUT_LINE('Trigger executed');
END;
9. ORA-12541: TNS: No Listener
특징:
- 데이터베이스 Listener가 실행 중이지 않을 때 발생.
해결방법:
- Listener를 시작하거나 설정 확인.
예시 코드:
bash코드 복사-- 원인
sqlplus user_name/password@db_name
bash코드 복사-- 해결 방안
lsnrctl start
10. ORA-01861: Literal Does Not Match Format String
특징:
- 날짜 형식이 올바르지 않을 때 발생.
해결방법:
- 정확한 날짜 형식 사용.
예시 코드:
-- 원인 코드
SELECT TO_DATE('2024-12-10', 'YYYY/MM/DD') FROM dual;
-- 해결 방안
SELECT TO_DATE('2024/12/10', 'YYYY/MM/DD') FROM dual;
2024.12.11 - [데이터베이스] - PostgreSQL 에러코드 및 해결 방법 : 예시코드
2024.12.11 - [데이터베이스] - MySQL 에러코드 및 해결 방법 : 예시 코드
반응형
SMALL
'데이터베이스' 카테고리의 다른 글
PostgreSQL 에러코드 및 해결 방법 : 예시코드 (0) | 2024.12.11 |
---|---|
MySQL 에러코드 및 해결 방법 : 예시 코드 (0) | 2024.12.11 |
샤딩(Sharding)과 파티셔닝(Partitioning)의 개념 (0) | 2024.10.29 |
ORM(Object-Relational Mapping)의 장단점 (1) | 2024.10.29 |
데이터베이스 락(lock)의 종류와 동작 방식 (0) | 2024.10.29 |