데이터베이스

오라클 에러코드(Oracle Error Code) 정리 : 예시 코드

♠디지털 모험일지♠ 2024. 12. 10. 17:52
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 에러코드 및 해결 방법 : 예시코드

 

PostgreSQL 에러코드 및 해결 방법 : 예시코드

1. Error: 42P01 (Undefined Table)Oracle 대응: ORA-00942원인: 지정된 테이블이 존재하지 않음.예시 코드SELECT * FROM non_existent_table;해결 방안CREATE TABLE example_table (id SERIAL PRIMARY KEY);2. Error: 23505 (Unique Violation)Orac

alswnsghd1234.tistory.com

2024.12.11 - [데이터베이스] - MySQL 에러코드 및 해결 방법 : 예시 코드

 

MySQL 에러코드 및 해결 방법 : 예시 코드

1. Error Code 1146 (Table Doesn't Exist)Oracle 대응 : ORA-00942원인 : 지정된 테이블이 존재하지 않음.예시 코드 SELECT * FROM non_existent_table;해결 방안 CREATE TABLE example_table (id INT PRIMARY KEY);2. Error Code 1062 (Duplicate

alswnsghd1234.tistory.com

 

반응형
SMALL