[너무많은 OR조건문제] sql문이 너무길어서 에러가 납니다 0 1 1,248

by SQL초보 [PL/SQL] [2014.02.06 00:00:33]



오라클DB에서 가져온 값들을 DB2 에서 조건으로 쓰는데 양이너무 많습니다

오라클DB에서 가져온 값들(17000여건)을
 
DB2 에서 마지막에 값의 양만큼 java에서 for문으로

조건을 계속 추가되게끔 해서 돌려보니

ex> or val_no = 'val_01'


잘 되는 부분인데.. 양이 너무 많아버리면 에러가 나더라구요

or val_no = 'val_01'
or val_no = 'val_01'
or val_no = 'val_01'
or val_no = 'val_01'
or val_no = 'val_01'
...
...

statement too long .. 이런 메시지가 나옵니다

다른 DB에서 조회간 값들을 sql 방법으로 이런 부분을 해결할 수는 없는지

조언부탁드립니다~;;;
by spencer [2014.02.06 03:28:27]
이렇게 해보면 어떨까요?
selec ... from ... where ... val_no in ('val_01', 'val_02', ... 'val_N');

이래도 너무 길어진다면 temporary table을 이용할수 있지 않을까요?
1. create temp table
2. insert record into temp table
  ex:) insert into TEMP values ('val_i); // loop: i=1..n
3. query with the TEMP table

selec ... from ... where ... val_no in (select value from TEMP);  
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입