본문 바로가기
Error/Java

[Error/Java] java.sql.SQLSyntaxErrorException: ORA-00936: 누락된 표현식 오류

by 챠챠12 2020. 7. 29.

문제상황 

 

위와 같은 오류가 발생하였고, 아래와 같은 코드를 작성했습니다.

이와 같은 에러가 발생하는 이유 중 ' ' , . ; * 이와 같은 기호를 잘못 작성해서 발생합니다. 

아니면 칼럼명이 잘못되었을 때도 발생합니다. 

 

			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();

 

😊 잘못된 내용이 있다면 언제든지 댓글로 남겨주세요 😊

 

 

728x90
반응형
LIST

댓글