ORA-01407

개발/ORCLE 2009. 10. 29. 16:03
ORA-01407: NULL로(테이블, 컬럼) 을 갱신할 수 없습니다 .

이같은 경우 대부분

인터넷 검색하면 하기와 같이 설명되어 있다.

컬럼이 분명 Not null제약조건이 걸려있을 겁니다.

이는 TOAD등에서 schema browser로 보시던가, 아래 쿼리로 확인하세요.

SELECT *
FROM all_tab_cols
WHERE table_name = '테이블명'

결과 중 해당컬럼명의 NULLABLE컬럼에 Y가 있어야 Null값을 허용하는 겁니다.

아마도 N으로 되어있을 것이고 이 컬럼은 Null값을 허용하지 않으므로 이 제약조건이 있는 한 어떤 방법으로도 Null을 입력할 수 없습니다.

위와 같이 그럴수도 있지만.

내가 보기엔 대부분 조인문에서 서로 레코드수가
틀려서 그런거 같다. 예를 들어.

 UPDATE eut_org_user a
   SET org_class2 =
         (SELECT org_class2
             FROM (
     SELECT a.user_id, b.org_class2, b.org_class3 FROM eut_org_user a, eut_org b
     where a.org_name = b.org_name
      AND a.org_class1 = 'S460'
          ) b
            WHERE a.user_id = b.user_id)
     Where a.org_class1 = 'S460'

위와 같은 쿼리에서 ORA-01407 났을때 컬럼에 Null값 허용하는지 보다.
빨간색부분 쿼리를 하나 실행시키시고,
파란색부분 하기와 같이 쿼리를 실행시켜서

select * from eut_org_user 
Where a.org_class1 = 'S460'

두개의 쿼리 레코드수를 비교해서 안맞을경우에도 ORA-01407 에러가 발생한다.
대부분 이런에러가 난다고 하는분은 거의 이런경우라 생각 되네요^^




'개발 > ORCLE' 카테고리의 다른 글

오라클 CASE문  (0) 2009.07.20
오라클 floor  (0) 2009.03.05
DBMS_JOB의 활용  (0) 2009.03.05
오라클 INTERVAL  (0) 2009.03.05
오라클 MONTHS_BETWEEN, ADD_MONTHS SYSDATE, TODAY, LAST_DAY, NEXT_DAY 날짜함수  (0) 2009.03.05
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,