2012-10-08 6 views
1

이 문제는 Stackoverflow의 주제를 읽었지만 아직 해결 방법이 없습니다.다음 SET 옵션의 설정이 잘못되어 INSERT가 실패했습니다. 'ARITHABORT'

내 문제는 SQL Server 2008의 저장 프로 시저에서 XML 매개 변수로 String 또는 Clob을 보내고 있습니다. 연결하기 위해 jTDS를 사용하고 있습니다. 나는 "ARITHABORT"를 ON으로 설정해야한다는 것을 읽었지만 실제로 어디에서 그것을 할 수 있는지 모른다.

아마 내 자신의 세션에서 JAVA 또는 DB에서도 ... 제발 도와주세요 !! (그리고 내 아주 나쁜 영어로 유감스럽게 생각합니다)

Ok! 나는이 쿼리

SET ARITHABORT ON; 

이 저장 프로 시저 전에 실행해야이라고 생각

private static final String PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO = "{CALL PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO(?, ?, ?, ?)}"; 


    public String modificaStatus(Connection connection, Integer eventoRobo, String path) throws SQLException { 
    Connection conn = null; 

    conn = GenericHibernateDAO.criaConexao(); 


    CallableStatement cs2 = conn.prepareCall(PR_SV_MUDA_STATUS_EVENTO_CONCLUIDO); 

    cs2.setInt(1, eventoRobo); 
    cs2.setString(2, null); 
    cs2.setString(3, null); 
    cs2.setString(4, path); 
    cs2.execute(); 
    conn.close(); 

    return null; 
} 
+2

유용한 목표를 달성하고 문제가있는 코드를 제공하여 유용한 답변을 얻으십시오. – devrys

답변

1

: 다음은 나에게 오류를 제공하는 방법입니다. 연결을 얻은 후에 곧 실행할 수 있습니다.

처리가 완료되면 아래 쿼리를 실행할 수 있습니다.

SET ARITHABORT OFF; 

이러한 쿼리는 Java 프로그램의 추가 명령문을 사용하여 실행할 수 있습니다.

+0

고마워, 나도 해봤지만 같은 오류가 나에게 돌아왔다. – user1729626

+0

무슨 오류가 발생 했습니까? 오류 스택 트레이스 맨 위에서 몇 줄을 공유 할 수 있습니까? –

+0

난 그냥이 http://support.microsoft.com/kb/305333 SET ARITHABORT 자신의 일괄 처리에서 실행해야합니다 것을 나타났습니다. –

0

오늘이 문제가 발생하여 해결되었습니다. SQL Server 2008 R2의 열에 필터 된 인덱스를 만들었지 만 삽입 할 때이 오류가 발생합니다. 이 질문은 모든 삽입물에서 항상 arithabort를 켜는 것이 지루할 수도 있으므로 완전히 대답하지는 못했습니다. 문제였던 데이터베이스 호환성 수준을 보여주는 블로그를 발견했습니다. 호환성 수준을 80 (2000)에서 100 (2008)으로 변경하여 문제가 해결되었습니다. 호환성 수준을 90으로 변경하면이 문제가 해결 될지 확실하지 않지만 시도해 볼 가치는 있습니다.

여기에서 변경할 SQL Server 호환성 수준 및 명령. http://msdn.microsoft.com/en-us/library/bb510680.aspx

이 작동하지 않습니다 또는이 변경이 테스트에서 수행되었다 내가 http://chrismay.org/2013/05/23/interesting-problem-with-sql-server-arithabort-filtered-indexes-calculated-columns-and-compatibility-mode-of-80/

참고 여기에 대해 얘기했다 블로그에 트리거를 추가하여 다른 해결 방법은 호환성 모드를 변경할 수없는 경우 데이터베이스 및 모든 응용 프로그램은 프로덕션 환경에서 이와 같이 변경하기 전에 테스트해야합니다. 변경하기 전에 DBA에게 확인하십시오.

관련 문제