나는 jdbcTemplate.update(String sql, Object[] args)
봄을 사용하여 Oracle 데이터베이스에서 준비된 삽입 문을 실행하고 있습니다. 개체 중 하나의 값은 'Y'를 포함하는 캐릭터 오브젝트이고, 목표 컬럼 (1)의 입력 CHAR이지만, I는오류 오라클 CHAR (1) 열에 Java 문자 개체 값 삽입
java.sql.SQLException: Invalid column type
예외를 수신하고있다.
전방 및 전방을 디버깅했습니다. 문제를 일으키는이 특정 객체가 의심의 여지가 없습니다. 이 문자 객체가 생략되면 예상대로 삽입이 실행됩니다.
또한 sql과 Object [] 값을 출력하고 sql을 sql 개발자에게 복사하고 값 자리 표시 자 (?'s)
을 개체의 실제 값으로 대체하면 삽입이 올바르게 작동합니다.
는 SQL (유죄를 보호하기 위해 난독 화) :
INSERT INTO SCHEMA.TABLE(NUMBER_COLUMN,VARCHAR_COLUMN,DATE_COLUMN,CHAR_COLUMN) VALUES (?,?,?,?);
개체 값 :
values[0] = [123]
values[1] = [Some String]
values[2] = [2012-04-19]
values[3] = [Y]
조합은 SQL 개발자에 수동으로 실행하고는 잘 작동합니다 :
INSERT INTO SCHEMA.TABLE(NUMBER_COLUMN,VARCHAR_COLUMN,DATE_COLUMN,CHAR_COLUMN) VALUES (123,'Some String','19-Apr-2012','Y');
prepared statement sql 자체는 null이 아닌 인스턴스 변수를 기반으로 동적으로 생성됩니다. le 객체 (데이터베이스가 기본값 생성을 처리하기를 원함)를 사용하기 때문에 SQL 또는 삽입 루틴을 다시 작성한다는 응답을받을 수 없습니다.
누구든지이 문제가 발생하여 어떤 일이 벌어지고 어떻게 해결할 수 있는지 설명 할 수 있습니까? 불행히도 문자 객체를 CHAR (1) 필드에 삽입 할 수 없다는 것은 당황 스럽다. 어떤 도움이라도 대단히 감사 할 것입니다.
감사합니다, 오랜 럴커를 처음은 포스터