Update 쿼리문에 대해 질문드립니다.. 0 6 2,628

by 주경진 [2008.05.19 18:07:19]


update metadata set dbcode1=’010’ where service=’TTA’ and dbname=’51’;
update metadata set dbcode2=’02’ where dbname=’51’ and service=’TTA’;

update metadata set dbcode1=’010’ where service=’0987’ and dbname=’51’;
update metadata set dbcode2=’03’ where dbname=’51’ and service=’0987’;

update metadata set dbcode1=’010’ where service=’0668’ and dbname=’51’;
update metadata set dbcode2=’04’ where dbname=’51’ and service=’0668’;

update metadata set dbcode1=’010’ where service=’0669’ and dbname=’51’;
update metadata set dbcode2=’05’ where dbname=’51’ and service=’0669’;

update metadata set dbcode1=’010’ where service=’0954’ and dbname=’51’;
update metadata set dbcode2=’06’ where dbname=’51’ and service=’0954’;

update metadata set dbcode1=’010’ where service=’0670’ and dbname=’51’;
update metadata set dbcode2=’07’ where dbname=’51’ and service=’0670’;

update metadata set dbcode1=’010’ where service=’0671’ and dbname=’51’;
update metadata set dbcode2=’08’ where dbname=’51’ and service=’0671’;

                                                                         :

                                                                         :

이런 업데이트 쿼리문이 있습니다.  이렇게 하나하나 하는방법 말고 한번에 쭈욱 할수있는 방법은 없을까요..?

작업을 능률적으로 하고싶은데 이렇게 일일이 하다보면 능률이 아니라 노가다 인것 같은 생각이 들어서요..

처음에 dbcode1을 업데이트 시키고 나중에 dbcode2를 업데이트시켜주고 있습니다.. 이렇게 쿼리를 계속 일일이

하나씩 짜는거 말고 다른방법이 있을꺼 같아서요.. 프로그램은 sql developer로 그냥 서버에 연결해서 쓰고있습니다..

고수님들 도와주세요..감사합니다..

by 현 [2008.05.19 18:15:31]
저것을 모두 컨트롤+c 하셔서 sql plus에다가 바로 붙여 놓으시면 됩니다.
파일로 저장하셔서 @파일명 이렇게 실행 하셔도 되시구요.

맨 마지막에 commit 잊지 마시구요...

by 주경진 [2008.05.19 18:29:36]
저..그게 spl plus 쓰는게 아니라요.. 제가 지금 sql developer 를 쓰고있거든요..

하나에 한줄씩 밖에 안먹게끔.. 선택영역을 지정해서 한번에 한개씩 된다는 말씀이죠.. 아직 sql문을 제대로 활용을 할줄몰라서요..

죄송하지만 다른방법은 없을까요..?

by xo [2008.05.19 18:51:38]
update metadata
set dbcode1 = '010',
dbcode2 = (service,'TTA','02',
'0987','03',
'0668','04',
'0669','05',
'0954','06',
'0670','07',
'0671','08')
where
service in ('TTA','0987','0668','0669','0954','0670','0671')
and dbname = '51'

by 현 [2008.05.19 19:37:13]
sql developer 에서도 될텐데요...

by 주경진 [2008.05.20 09:01:01]
아.. 전 아직 미숙해서 그런지.. 한번에 한개의 sql쿼리문만 된다고 해서요..

현님 xo 님 답변 정말 감사드립니다..

by 마농 [2008.05.20 09:02:14]
1. 일단 조건이 동일한 두개의 쿼리는 하나로 만들 수 있습니다.
UPDATE metadata
SET dbcode1 = '010', dbcode2 = '02'
WHERE 조건;
2. 조건이 다른 쿼리를 하나로 만들 수는 없겠죠.
아니, 하나로 만들 수는 있지만 억지스럽죠.
xo 님의 방식이 되겠네요.
3. 여러행의 쿼리를 일괄 실행하실 수 있습니다.
단, 사용하시는 툴마다 그 방법에 약간의 차이가 있겠지요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입