2009-12-23 15 views
3

나는 잠시 동안 머리를 부숴 버렸습니다.문자열을 VARCHAR 필드에 전달할 때 지원되지 않는 SQL 형식 1111

Sybase DB에 상주하는 Stored Proc를 실행하기 위해 Java 코드와 함께 iBatis를 사용하고 있습니다.

저장 프로 시저에 일부 매개 변수가 필요합니다. 그 중 일부는 VARCHAR (6)

으로 표시됩니다. 따라서 iBatis 매핑에서 이러한 매개 변수에 대해 다음을 수행했습니다.

<parameter property="searchUserId" jdbcType="String" javaType="java.lang.String" mode="IN"/> 

그러나 이렇게하면 다음과 같은 오류가 발생합니다.

--- Check the statement (update procedure failed). 
--- Cause: java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0SL: Unsupported SQL type 1111. 
Caused by: java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0SL: Unsupported SQL type 1111. 

그래서 나는 다음에 내 매핑을 변경 : 이제 매개 변수 searchUserId이 SP로 전달 null의 값을 받고, 그러나, 위의 오류를 제거있어

<parameter property="searchUserId" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/> 

. 나는 확실히 내 Java 코드에서 패스하지 않는다는 것을 압니다. null.

누군가이 문제에 직면 했습니까? 내 매핑을 어떻게 변경해야합니까 ??

답변

0

VARCHAR을 jdbcType으로 사용하도록 변경 한 후에 매개 변수 요소가 정상적으로 보입니다. 매핑 파일의 나머지 매개 변수 요소와 프로 시저 요소 및 매개 변수 맵을 생성하고 쿼리를 호출하는 코드를 포함시킬 수 있습니까?

쿼리에 전달 된지도를 구성 할 때 오타가 될 수 있습니다. (최소한 내가 생각할 수있는 종류의 실수입니다. Ibatis를 사용하면서 "userId"를 대문자로 사용하는 것에 대해 일관성이 없었습니다.)

+0

나는 그 질문을 편집했습니다 ... – Omnipresent

+1

실제로 ... 내 코드의 나머지 부분을 붙여 넣는 과정에서 나는 형식이 있다는 것을 깨달았습니다. searchUserId 및 searchUserID > _ Omnipresent

0

나 역시 비슷한 상황에 직면했다. 많은 것을 검색 한 후 마침내 나는 내 문제에 대한 대답이지도를 만드는 동안 특정 '열쇠'가 빠져 있다는 것을 발견했습니다. 나는 문을 잃어버린 : 내가 달릴

1

내가 JOB_NAME를 사용하던 곳에 다른 내가 = CronMapper.xml

에 #을 또한

일부를 JOB_NAME = # {작업 이름}를 사용했다

map.put("job_name", job.getJobName()); 

& {작업 이름} 다른 이유로이 문제에 대해 : 테이블에 geometry (PostGIS 확장자) 열이 포함되어있어서 드라이버가 구문 분석 할 수 없다고 생각합니다. 그 열을 떨어 뜨리면 효과가있었습니다.

관련 문제