SELECT COL1 FROM TABLE WHERE COL2 = ?
위와 같는 prepareStatement 에서 setString 으로 값을 넘겨준 뒤, resultSet으로 결과를 받은 뒤, next() 함수로 확인해보니 값이 들어가지 않았다.
실제 쿼리를 실행해보면 잘 작동했고
setString과 ? 없는 쿼리를 하면 잘 작동했다.
1) 인자에 공백이 포함되어 있나 확인해봤지만 공백은 없는 것처럼 보였다.
oracle 기준 prepareStatement를 출력해봐도 setString 후의 쿼리가 보이질 않았어 난항이었다.
2) setString의 사용 문제로 추정되었고 위의 문제로 쿼리문 자체를 출력은 안 돼서 쿼리문을 수정하여 확인해보았다.
SELECT COL1, ? FROM TABLE
이런식으로 쿼리를 수정하고 setString 을 한 뒤 resultSet에서 getString을 해보니 정상적으로 값을 가져왔다.
결론) 인자값이 string 타입인데 형태는 숫자였다. setString 대신 string을 int형으로 바꾼 뒤, setInt 로 하니깐 정상 작동하였다.
string 타입이기에 setString을 했는데 문제가 있었다. 테이블의 컬럼 타입도 char 타입인데 작동을 안 하니 이상하다.
'Programming > Tip&Informaion' 카테고리의 다른 글
[환경구축] 아치 리눅스, venv 부터 jupyter notebook 까지 (1) | 2020.06.26 |
---|---|
A/B 테스트 (0) | 2020.05.13 |
[clojure/lein] cider.repl 문제 (0) | 2019.12.22 |
[js] 디버깅 팁 (0) | 2019.12.03 |
[asp.net/mssql] column_name 은(는) Table명 테이블의 DataColumn 또는 DataRelation이 아닙니다. 오류 (0) | 2019.10.09 |