쿼리좀확인해주세여~ 누락된우괄호가 떠용... 0 4 676

by 공부하는개발자자 [2016.11.24 16:32:00]


 

data1, data2 이런식으로 넣었는데 안되더라구요

 

데이터를 어떻게 변형해서 넣어야 data1, data2

 

buf.append(" AND   DEPT_CD  in (data1, data2) ");

이게되는걸까요??

by 개발뉴비 [2016.11.24 17:12:42]

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() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입