mysql 인덱스 범위를 벗어났습니다. 오류 문제 해결 0 4 13,512

by 궁금한넘 [DB 기타] mssql [2017.07.26 10:47:15]


안녕하세요

다음과 같이 ms-sqlDB에 접속하여 스크립트로 테이블을 업데이트하려고 하면 

'인덱스 1이 범위를 벗어났습니다'.라는   오류와  함께  실행이  안  되는  상황입니다

이에 대해서 아시는  분의   도움  부탁드립니다


 


try
{            
    System.out.println("######## ERP 년월별 근태집계테이블 UPDATE Start #######");
    
    DataSource source = getDataSource();
    JdbcTemplate template = new JdbcTemplate(source);

    StringBuilder query = new StringBuilder();
    query.append("update hrdb set ");
    query.append("resno = '");
    query.append(RESNO); 
    query.append("', ");
    query.append("login_id = '");
    query.append(loginId); 
    query.append("', ");
    query.append("where company_seq = '"); 
    query.append(compSeq); 
    query.append("' ");
    
    try {
        result = template.update(query.toString(), String.class);
        System.out.println("@@@@@@@@@result : " + result);
        
    } catch (Exception e) {
        logger.info("e: " + e);
        System.out.println("e: " + e);
    }
    
}
catch(Exception e){            
    check = -1;
}
.

=======================

e: org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; 

SQL [update hrdb set resno= '7777777', login_id= 'testtest' where company_seq = '1000' ]; 인덱스 1이(가) 범위를 벗어났습니다.; 

by 마농 [2017.07.26 11:09:13]
    query.append(loginId); 
//  query.append("', ");    // 수정전
    query.append("' ");     // 수정후
    query.append("where company_seq = '"); 

 


by 궁금한넘 [2017.07.26 11:25:35]

마농님 빠른 답변 감사드립니다. 

말씀하신 대로 했는데요.. 동일한 증상이 나타나는 이유는 뭘까요? 제가 아직 테이블명세서만 보고 작성한 거라...혹시 데이터타입에 따른 문제일수도 있나해서요....

주로 이러한 오류는 어떨때 발생하는건지요?


by 마농 [2017.07.26 11:33:25]

주로 오타 때문에 발생합니다.
실행전 완성된 쿼리를 찍어보시고.
찍힌 쿼리 복사해서 쿼리툴에서 확인해 보세요.


by 궁금한넘 [2017.07.26 11:42:15]

네에, 조언 감사드립니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입