코딩헤딩

오라클 데이터베이스 [ORA-01017, ORA-01400, ORA-06502] 오류 본문

데이터베이스/ORACLE

오라클 데이터베이스 [ORA-01017, ORA-01400, ORA-06502] 오류

멈머이 2025. 5. 29. 00:07
728x90

1. ORA-01017: invalid username/password; logon denied

  • 의미 : 사용자 이름 또는 비밀번호가 잘못되어 접속 실패
  • 원인 : 아이디 또는 비밀번호 오타, 대소문자 구분 (특히 Oracle 12c 이후), 비밀번호 정책에 따라 계정이 잠겼거나 만료됨
sqlplus wrong_user/wrong_pass@ORCL

  -- 해결방법
    -- 아이디/비밀번호 정확히 확인, 대소문자 확인, DBA가 계정 잠금 여부 확인:
    
SELECT username, account_status FROM dba_users WHERE username = '사용자명';

ALTER USER 사용자명 ACCOUNT UNLOCK; --잠금해제

 

 

2. ORA-01400: cannot insert NULL into ("컬럼명")

  • 의미 : NOT NULL 제약이 걸린 컬럼에 NULL을 넣으려 할 때 발생
  • 원인 : 필수 컬럼에 값을 넣지 않음, INSERT 문에서 특정 컬럼 누락
-- users 테이블의 username은 NOT NULL 제약
INSERT INTO users (user_id) VALUES (1);

-- 올바른 예
INSERT INTO users (user_id, username) VALUES (1, 'Alice');
  -- 또는 애플리케이션단에서 필수 입력 유효성 검증 추가

 

 

3. ORA-06502: PL/SQL: numeric or value error: character string buffer too small

  • 의미 : 문자열이 변수 크기를 초과했을 때 발생
  • 원인 : VARCHAR2(n) 크기보다 더 긴 문자열을 대입
DECLARE
  v_name VARCHAR2(5);
BEGIN
  v_name := 'Alexander';
END;

-- 해결방법
 -- 변수 크기를 충분히 늘려줌
 
 
 -- 올바른 예
 DECLARE
  v_name VARCHAR2(20);
  
-- 또는 
v_name := SUBSTR('Alexander', 1, 5);

 

728x90