public void update(User user) {
this.jdbcTemplate.update(
"update users set name = ?, password = ?, \"LEVEL\" = ?, "
+"login = ?, recommend = ?, \"email\" = ? where id = ?",
user.getName(), user.getPassword(), user.getLevel().intValue(),
user.getLogin(), user.getRecommend(), user.getEmail(),
user.getId());
}
쿼리를 보내는데요. 일부 컬럼은 세미콜론(")을 붙여서 억지로 보내야 되네요.
level과 email만 그러는데 왜 이것들만 "LEVEL", "email"로 해야하나요?
mysql에서는 잘만되던게 오라클로 가져오니까 안되네요.
그리고 select로 가져올 때도 엉망인데 이것때문인거 같아요.
타입 문제
예약어라서 그렇습니다. 그래서 따옴표를 붙여 문자열로 받아들이게 해야되는 거죠. 컬럼명에 스페이스 섞인것들도 비슷한 이유입니다. 각 디비의 명명규칙을 확인해보세요
참고로 오라클... 버그가 좀 있는게 아니라, 아~~주 많이 넘쳐납니다(...)
jdbc 와 오라클간의 에러 99.999999999999999%는 오라클의 의도적인 에러방치때문... 자사 클라이언트 깔라는 개소리는 덤이구요(...)
그렇군요... 감사합니다.