2011-02-01 2 views
0

테이블에 clob로 큰 문자열을 삽입해야합니다. PreparedStatement의 setClob 메서드를 사용하고 있습니다. 그러나 값은 데이터베이스 테이블에 삽입되지 않습니다. 누구든지 setClob 메서드를 사용하여 테이블에 문자열을 삽입 할 수있는 방법을 말해 줄 수 있습니까? 다음 I의 방법을 사용하고jdbc에서 setClob 메서드를 사용하는 방법은 무엇입니까?

:

pstmt.setClob (0, CLOB)를;

그러나 프로그램에서이 줄의 명령문을 실행할 수 없습니다. 그것은 루프에서 나오고 같은 줄에서 다시 멈 춥니 다. 나는 이것을 달성하기 위해 Clob Object를 사용하는 딜레마에 빠졌습니다.

도와주세요.

미리 감사드립니다.

답변

1

어떤 데이터베이스에 값을 삽입 하시겠습니까? 예를 들어 Oracle 백엔드의 경우 preparedStatement 메소드는 CLOB에 4k 제한을가집니다.

당신은 사용할 수 있습니다

 
Clob clob = ... 
String chuck = clob.getSubString(1,10); 
clob.setString(1,chuck); 

는 크기가 여기에 문제가되지 않습니다 있는지 확인합니다.

+0

저는 Oracle을 사용하고 있습니다. 어떻게 Clob 객체를 초기화할까요? 값을 설정하기 위해 clob.setString을 사용한 다음 열의 clob을 설정하기 위해 stmt.setClob()를 사용했습니다. 그러나 그것은 효과가 없었습니다. – srinivasarao

+0

나는 오라클이 선호하는 바대로 empty_clob() 프로 시저가있는 빈 clob을 테이블에 쓴 다음, 그것을 선택하여 쓰기를한다. –

+1

이 링크는 도움이 될 것입니다 : http://www.selbyinc.com/technology/clobs.html –

1

WebLogic과 Oracle을 사용하여 동일한 문제가 발생했습니다. 나는 문서에서 해결책을 찾을 : 섹션에서 http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb11jav.htm 나는이 함께했다 유일한 문제는 CLOB.createTemporary이 OracleConnection을 요구이었다

"JDBC로 데이터베이스에 대형 XML 문서를로드"를,하지만 내 연결 개체 ClassCastException을 얻지 않고 OracleConnection에 캐스트 할 수없는 $ ProxyXX 유형이었습니다. conn.getMetaData(). getConnection()을 사용하여 구입하십시오. OracleConnection에 캐스팅 할 수있는 T4CConnection이 있습니다.

관련 문제