안녕하세요. 급한 거라 많은 고수님들에게 외뢰합니다.
저희 회사에서 DB를 sysbase 에서 oracle로 변환하였습니다. 그런 와중에 temp테이블은 강제적으로 만들어 주고요.
근데 문제가 생겼습니다. sysbase에서는 적용되는 update...set..from....이
oracle에서는 적용이 안되는 것입니다. from 절에서 에러 나요.
근데 update 조건이 두 테이블을 조인하는 조건으로 걸려구 하니 서브쿼리로 만들기도 너무 어렵습니다. 예를 보여 드린다면요.
update fix04
set buy_amt = buy_amt + b.amount
from fix04 a,imsi b
where a.company = b.company
and a.lgubun = b.lgubun
and a.sgubun = b.sgubun
and a.fix_code = b.fix_code
and a.company in ('F', 'M')
and a.buy_day <= '20021231';
이것을 서브쿼리로 만들면.
update fix04
set buy_amt = buy_amt + (select b.amount
from fix04 a,imsi b
where a.company = b.company
and a.lgubun = b.lgubun
and a.sgubun = b.sgubun
and a.fix_code = b.fix_code
and a.company in ('F', 'M')
and a.buy_day <= '20021231');
근데 조건을 줘야하는데 조건이 두 테이블의 조인조건이니 정말 막막합니다.
위에 서브쿼리는 일단 select 에서 many row이 리턴될것이며, 또한 하나만 넘어온다 하더라도 전체 row에 update될 것 같습니다.
이 난국을 어떻게 해쳐 나가야할지 위와 같은 update문 100정도는 더 있어니 다 수정하여야 하는데 ㅜ.ㅜ
고수님들의 한수를 절실히 필요합니다.
즐거운 하루 되세요.
|