Error/Java
[Error/Java] java.sql.SQLSyntaxErrorException: ORA-00936: 누락된 표현식 오류
챠챠12
2020. 7. 29. 12:01
반응형
문제상황:
위와 같은 오류가 발생하였고, 아래와 같은 코드를 작성했습니다.
이와 같은 에러가 발생하는 이유 중 ' ' , . ; * 이와 같은 기호를 잘못 작성해서 발생합니다.
아니면 칼럼명이 잘못되었을 때도 발생합니다.
int result = 0;
String sql = "insert into board values(select max(seq)+1 from board,?,?,?,sysdate,?,?)";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, board.getTitle());
st.setString(2, board.getContents());
st.setString(3, board.getWriter());
st.setInt(4, board.getPassword());
st.setInt(5, 0);
result = st.executeUpdate();
저는 아무리 봐도 기호를 잘못 작성해서 발생한것 같지 않았습니다. 혹시나해서 테스트용 insert문을 작성해서 실행해 보았더니 insert안에 select 서브쿼리를 괄호로 구분해줘야만 쿼리가 정상 실행되었습니다. 이런 간단한 실수를 하다니..ㅠㅠ
처리내역:
insert into board values( (select max(seq) + 1 from board) ,~) 괄호를 추가하였습니다.
int result = 0;
String sql = "insert into board values((select max(seq)+1 from board),?,?,?,sysdate,?,?)";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, board.getTitle());
st.setString(2, board.getContents());
st.setString(3, board.getWriter());
st.setInt(4, board.getPassword());
st.setInt(5, 0);
result = st.executeUpdate();
😊 잘못된 내용이 있다면 언제든지 댓글로 남겨주세요 😊
반응형