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
- 데이터베이스
- 훈련
- 딥러닝
- pythone
- python기초
- 오라클
- 회귀모델
- 데이터 수집
- 파싱 오류
- Oracle
- python
- 정확도
- pandas
- tensorflow
- Database
- 데이터전처리
- 머신러닝
- 데이터 분석
- 해석
- sql
- 데이터 가공
- 데이터
- sklearn
- 예측
- Deep Learning
- keras
- DB
Archives
- Today
- Total
코딩헤딩
오라클 데이터베이스 [ORA-00955, ORA-00060, ORA-00907] 오류 본문
728x90
DDL 작업(CREATE, ALTER, DROP 등)을 하다가 발생하기 쉬운 오류
1. ORA-00904: invalid identifier
- 의미 : 같은 이름의 테이블, 인덱스, 시퀀스 등 객체가 이미 존재함
- 원인 : 이미 있는 테이블이나 시퀀스를 다시 생성하려 할 때, DROP을 하지 않고 CREATE만 실행할 경우
CREATE TABLE users (...); -- 이미 존재하는 경우
-- 해결 방법
-- 객체 존재 여부 먼저 확인
SELECT table_name FROM user_tables WHERE table_name = 'USERS';
-- 존재하면 DROP 후 생성
DROP TABLE users;
CREATE TABLE users (...);
-- 또는 CREATE OR REPLACE 사용 (단, VIEW, PROCEDURE 등에만 해당)
2. ORA-01430: column being added already exists in table
- 의미 : ALTER TABLE로 추가하려는 컬럼이 이미 테이블에 존재함
- 원인 : 컬럼이 이미 있는데 중복으로 추가하려는 경우, 컬럼 이름 오타가 있어 중복 시도
ALTER TABLE users ADD (username VARCHAR2(50));
-- users 테이블에 username 컬럼이 이미 있을 때
-- 해결 방법
-- 컬럼 존재 여부 확인
SELECT column_name FROM user_tab_columns
WHERE table_name = 'USERS' AND column_name = 'USERNAME';
-- 조건부로 실행하거나 스크립트 분기처리 필요 시
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE users ADD (username VARCHAR2(50))';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -1430 THEN
NULL; -- 이미 존재할 경우 무시
ELSE
RAISE;
END IF;
END;
3. ORA-02429: cannot drop index used for enforcement of unique/primary key
- 의미 : PRIMARY KEY 또는 UNIQUE 제약 조건에 사용된 인덱스를 직접 DROP하려 함
- 원인 : PRIMARY KEY 제약조건 자동 생성 인덱스를 DROP하려고 할 때
DROP INDEX PK_USERS_ID;
-- 해당 인덱스가 PRIMARY KEY로 연결돼 있을 때
-- 해결 방법
-- 1. 제약조건 제거
ALTER TABLE users DROP CONSTRAINT pk_users_id;
-- 2. 다음 인덱스 DROP
DROP INDEX pk_users_id;
-- FOREIGN KEY 제약조건이 연결된 경우도 함께 고려해야 함
- DDL 실행 전, 항상 user_tables, user_constraints, user_indexes 등 메타정보 조회!
- DDL은 롤백 불가이므로 작업 전 백업 필수
728x90
'데이터베이스 > ORACLE' 카테고리의 다른 글
오라클 데이터베이스 [ORA-01408, ORA-14024, ORA-01031] 오류 (0) | 2025.06.10 |
---|---|
오라클 데이터베이스 [ORA-00979, ORA-12801, ORA-01555] 오류 (0) | 2025.06.09 |
오라클 데이터베이스 [ORA-00904, ORA-00060, ORA-00907] 오류 (0) | 2025.06.03 |
오라클 데이터베이스 [ORA-01843, ORA-00911, ORA-00907] 오류 (0) | 2025.06.03 |
오라클 데이터베이스 [ORA-03113, ORA-02049, ORA-01652] 오류 (0) | 2025.05.31 |