0
나는 camel 2.17.0을 사용 중이며 SQL IN 절을 사용하여 업데이트 쿼리를 실행해야합니다. 쿼리 내가 헤더를 낙타 모든 매개 변수를 설정 한아파치의 In 절 사용하기
update MY_TABLE set STATUS = :#status where ID in (:#in:ids) AND TYPE = :#type
이며, 매개 변수 IDS는 목록을 < 긴 >을하고 내 실행 중에 목록의 네 가지 요소가 있습니다. 하지만 SQL 예외가 발생했습니다
PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Number of parameters mismatch.
Expected: 6, was: 4; nested exception is java.sql.SQLException: Number of parameters mismatch. Expected: 6, was: 4
무엇이 잘못되었는지 잘 모르겠습니다. 매개 변수 목록 ID 이외의 모든 값을 하드 코딩 할 때 오류없이 테이블을 업데이트 할 수 있습니다. 수정 된 쿼리는
update MY_TABLE set STATUS = 'SUCCESS' where ID in (:#in:corrIds) AND TYPE = 'type'
우리가 IN 절을 사용할 때 우리는 쿼리에 다른 매개 변수를 제공 할 수없는 어떤 의무가 있습니까
처럼? 제발 조언.
해결 방법 하나의 해결 방법은 bean 또는 프로세서를 추가하고 전달 된 Exchange 개체를 사용하여 메서드에 JDBC 호출을 수행하여 헤더에 액세스하는 것입니다. 나는 여러 번 구성 요소 문제에 맞서 싸웠으며 매력처럼 작동합니다. –
최신 Camel 버전으로 업그레이드 해보세요. –