无法更新Oracle中的暂存记录,sql开发人员

问题描述:

下面是我写的更新给定字段的查询,但其引发无法将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); 

检查您的解决方案成这样子:(1)先更改列(H_BN_INITIAL_PARTN)现在下面query.then运行查询允许空

alter table  PS_H_BN_MCR_STG 
 
modify (H_BN_INITIAL_PARTN NULL);

(2)

+0

感谢您的回复 我已经使用%coalesce,现在它的工作 – user6924846