2016-11-25 3 views
0

다음은 주어진 필드를 업데이트하기 위해 작성한 쿼리이지만 throw는 null 오류로 char을 업데이트 할 수 없습니다.Oracle, SQL 개발자의 스테이징 레코드를 업데이트 할 수 없습니다.

UPDATE PS_H_BN_MCR_STG A SET A.H_BN_INITIAL_PARTN=(SELECT NVL(D.NAME_INITIALS,' ') 
    FROM PS_DEP_BEN_NAME D 
    WHERE D.EMPLID=A.EMPLID 
    AND D.DEPENDENT_BENEF=01 
    AND D.EFFDT=( 
SELECT MAX(D1.EFFDT) 
FROM PS_DEP_BEN_NAME D1 
WHERE D1.EMPLID=D.EMPLID 
    AND D1.DEPENDENT_BENEF=D.DEPENDENT_BENEF 
    AND D1.EFFDT<=SYSDATE)) WHERE A.MARITAL_STATUS IN (1,6,7); 

답변

0

이 방법으로 솔루션 확인 : 이제 다음 실행 query.then 쿼리에 의해 널 (null) 허용 (1) 첫 번째 열 (H_BN_INITIAL_PARTN를) 변경을

alter table  PS_H_BN_MCR_STG 
 
modify (H_BN_INITIAL_PARTN NULL);

(2)

+0

답장을 보내 주셔서 감사합니다. % coalesce 및 그 작업을 사용했습니다. – user6924846

관련 문제