본문 바로가기
Error/Java

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

by 챠챠12 2020. 7. 29.

java.sql.SQLSyntaxErrorException: ORA-00936: 누락된 표현식 오류 

 

 

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

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

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

 

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

 

반응형
LIST

댓글