buf.append(" AND DEPT_CD in ('" + data1 + "', '" + data2 + "') ");
누락된 우괄호는 이 부분에서 나오는 오류가 아닌 것 같네요...
by jkson
[2016.11.24 17:33:59]
data1, data2가 변수인건가요? 변수라면 개발뉴비님 방법으로 할 수도 있지만 저렇게 되면 쿼리 날릴 때마다 하드파싱이 되기 때문에 바인드변수를 사용하시는 게 좋아요. in (:data1, :data2)
by 공부하는개발자자
[2016.11.25 09:15:26]
StringBuffer를 활용한 in쿼리를 작성중입니다만..
buf.append("\n AND DEPT_CD in (?) ");
String a = "부서1";
이렇게 a를 넣었을경우엔 부서1이 조회가 됩니다...
하지만
Stirng a = "\'부서1\',\'부서2\'";
이렇게 넣었을경우엔 부서1,부서2가 조회가 되어야하는데 조회가 되지가않네요..
이부분을 어떻게수정을 해야할까요???!
by 마농
[2016.11.25 09:29:18]
변수가 하나이므로 하나의 값입니다.
구분자로 구별되는 여러개의 값이 아닌, 구분자를 포함한 하나의 문자열일 뿐이죠.
? 로 바인드 변수 처리 하지 마시고 문자열 이어붙이기 식으로 접근하셔야 할 듯.
Stirng a = "\'부서1\',\'부서2\'"; 이부분에서 \ 가 필요한지 의문이네요?
다음과 같이 하시면 될 듯.
Stirng a = "'부서1','부서2'";
buf.append("\n AND DEPT_CD in (" + a + ") ");
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.