Its not possible to join more than one table in a Update Statement.
But i think your problem is that some ids are NULL and sch_id has a NOT NULL Constaint:
Code:
update ed_rec
set sch_id = (select id from sch_rec where sch_rec.ceeb = ed_rec.ceeb and id is not null)
where sch_id = 0 and ceeb <> 0 and sch_id is not null
OR
Code:
update ed_rec
set sch_id = (select nvl(id,0) from sch_rec where sch_rec.ceeb = ed_rec.ceeb)
where sch_id = 0 and ceeb <> 0 and sch_id is not null
If id is null then sch_id is set to 0.