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
- python기초
- keras
- 데이터 분석
- 시각화
- Deep Learning
- 훈련
- Database
- pythone
- python
- DB
- 머신러닝
- sklearn
- pandas
- 데이터베이스
- 회귀모델
- 오라클
- 해석
- 데이터 수집
- sql
- Oracle
- 정확도
- tensorflow
- 데이터전처리
- 데이터 가공
- 예측
- 파싱 오류
- 딥러닝
- MariaDB
Archives
- Today
- Total
코딩헤딩
오라클 데이터베이스 [ORA-06502, ORA-06503, ORA-04091] 오류 본문
728x90
1. ORA-06502: PL/SQL: numeric or value error
- 의미 : 숫자 또는 문자형 오류
- 원인 : VARCHAR2 길이 초과, 숫자형 변환 실패, NULL을 숫자로 연산
DECLARE
v_str VARCHAR2(5);
BEGIN
v_str := '123456'; -- 길이 초과
END;
-- 해결 방법
-- 1. 변수 크기 조정
-- 2. 데이터 유효성 체크
2. ORA-06503: PL/SQL: Function returned without value
- 의미 : 함수에서 RETURN 없이 끝남
- 원인 : IF~ELSE 중 일부 분기에서 RETURN이 없음
CREATE OR REPLACE FUNCTION test_func (p IN NUMBER)
RETURN VARCHAR2 IS
BEGIN
IF p > 0 THEN
RETURN 'OK';
END IF;
-- ELSE일 때 return 없음
END;
-- 해결 방법
...
ELSE
RETURN 'FAIL';
END;
3. ORA-04091: table is mutating, trigger/function may not see it
- 의미 : 트리거 내에서 변경 중인 테이블에 SELECT할 경우 발생
- 원인 : BEFORE/AFTER 트리거 안에서 해당 테이블 SELECT
CREATE OR REPLACE TRIGGER trg_check
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
-- 트리거 안에서 employees 조회 → 오류
SELECT COUNT(*) INTO v_cnt FROM employees WHERE deptno = :NEW.deptno;
END;
-- 해결 방법
-- 1. 트리거 내에서는 :NEW / :OLD 값만 사용
-- 2. 필요하면 패키지 + 지연 처리 구조로 변경
4. ORA-06511: PL/SQL: cursor already open
- 의미 : 커서가 이미 열려 있음
- 원인 : 커서를 열고 OPEN을 반복 호출한 경우
OPEN my_cursor;
OPEN my_cursor; -- 두 번째 open에서 에러
--해결방법
IF NOT my_cursor%ISOPEN THEN OPEN my_cursor; END IF;
4. ORA-06550 / PLS-00103
- 의미 : 구문 오류 (컴파일 에러)
- 원인 : PL/SQL 문법 오류, 세미콜론 누락, 예약어 오용 등
BEGIN
v_test := 'abc'
END;
-- 세미콜론 누락 → ORA-06550 + PLS-00103
--해결방법
-- 1. 에러 메시지 줄 번호 확인 후 수정
-- 2. SQL Developer에서 빨간줄 힌트 보기
- 트리거 설계 시 조회 없이 변경값만 활용하는 구조로 설계
- 함수 RETURN 경로는 반드시 명확히 설계
- 커서 사용할 땐 %ISOPEN, CLOSE 처리 습관화
728x90
'데이터베이스 > ORACLE' 카테고리의 다른 글
오라클 데이터베이스 [ORA-00904, ORA-01722, ORA-12801 + ORA-00600 / ORA-07445, ORA-10046] 오류 (4) | 2025.08.06 |
---|---|
오라클 데이터베이스 [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 |
오라클 데이터베이스 [ORA-00979, ORA-12801, ORA-01555] 오류 (0) | 2025.06.09 |