연우, 장을 열다.


오늘 만났던 에러는 바로 

illegal operation on empty result set mysql


상황은 이러했다. 

포문을 돌면서, 조회했던 정보를 예쁘게 잘 INSERT 구문을 만들어서 


SQL문을 실행해주려고 했던 것이었음. 




sql = "select dispNo, dispNm, parentDispNo from tbl_mst_api_category_temp where market_code='1111' and dispNo ='"+forwardDispNo+"' "; //1건 조회stmt=conn.prepareStatement(sql);

rs1=stmt.executeQuery();


이렇게 결과값을 rs1에 담고, 


rs1.next();


를 위처럼 찍은 다음... 


sql = "insert tbl2 values (rs1.getString('aaa'),rs1.getString('bbb'),rs1.getInt('ccc'))";



위처럼.. sql문을 작성한 다음 실행 했더니 만났던 에러였다. 


illegal operation on empty result set mysql


요놈 참 깨름찍한 용어다. 


즉 mysql에서  빈결과( empty result set ) 를  돌려받는 것에 대한  불법적인 작용 정도로 인식하면 될것이다. .. . . .. 




empty result set 에 집중해서 생각해보니까, 

결국에, 조회했던 sql문인 

sql = "select dispNo, dispNm, parentDispNo from tbl_mst_api_category_temp where market_code='1111' and dispNo ='"+forwardDispNo+"' "; //1건 조회stmt

이것에서 조회되는 값이 없다는 의미였다 ㅠㅠ 

조회하는 값이 없어서 문제였던 것이 아니라, 

그 조회한 값이 마치 있다고 가정하고 내가 코딩을 했던 것이다. 


그래서 boolean값을 리턴하는 rs1.next로 실행하고자 하는 부분을 이프문으로 쌌더니, 자알 된다^^ 
if(rs1.next()){
  forwardDispNo =  rs1.getString("parentDispNo");
if(i==tempDepth -1){
  tempPrefix="";
}else{
  tempPrefix=" , ";
}
  tempStr += tempPrefix +" cate_code_" + i + "=" + rs1.getString("dispNo")   ;
  tempStr +=" , cate_name_" + i + "='" + rs1.getString("dispNm")+"'";
}