ORA-01407:无法更新(“schema”。“UTILISATEUR”。“ID_PERSONNE”)为NULL

时间:2015-03-24 11:10:05

标签: sql database oracle

你能请求帮助我吗? 我有这个问题ORA-01407:无法更新(“schema”。“UTILISATEUR”。“ID_PERSONNE”)为NULL。

***但是我检查了“架构”。“UTILISATEUR”。“ID_PERSONNE”不是空的!! 每条记录都已填写。

查询下方:

UPDATE schema.utilisateur
  SET schema.utilisateur.ID_Personne = (select testtable.New_ID_Personne
                                        from testtable
                                        where TESTTABLE.Login = schema.utilisateur.Login
                                          and testtable.New_id_personne is not null)

1 个答案:

答案 0 :(得分:2)

这可能是由于login表格中schema.utilisateurtesttable中没有new_id_personne,这意味着相应的where会是空的。您需要在update语句中添加testtable子句,以确保您只更新UPDATE schema.utilisateur su SET su.ID_Personne = (select testtable.New_ID_Personne from testtable tt1 where tt1.Login = su.Login and tt1.New_id_personne is not null) where exists (select null from testtable tt2 where tt2.Login = su.Login and tt2.New_id_personne is not null); 中存在的行,例如:

merge

或者您可以将其转换为merge into schema.utilisateur tgt using (select testtable.New_ID_Personne from testtable tt where tt1.New_id_personne is not null) src on (tgt.login = src.login) when matched then update set tgt.id_personne = src.new_id_personne; 语句,例如:

{{1}}