別のテーブルに基づいてテーブルを更新する必要があるため、次のステートメントがあります。
update FAULTS
set FAULTS.FAULT_STATE = (
select INCIDENTS.TICKET_STATE from INCIDENTS
where INCIDENTS.CF_ID = FAULTS.CF_ID
)
そして、次のようなエラーが表示されます:
ORA-01427: single-row subquery returns more than one row
DISTINCT を試しましたが、状態値も異なるため、DISTINCT は機能しません。だから私もそれを変更しました:
update FAULTS
set FAULTS.FAULT_STATE = (
select INCIDENTS.TICKET_STATE from INCIDENTS
where INCIDENTS.CF_ID = FAULTS.CF_ID and rownum = 1
)
これでエラーは発生しなくなりました。
問題は、サブクエリが null を返す場合、行も更新してコンテンツをクリアすることです。そのための修正はありますか?