로 문자열을 반환합니다. XML 파일을 CLOB으로 저장하는 테이블이 있습니다. NLS_CHARACTERSET
은 AL32UTF8
으로 설정됩니다. java.sql
패키지로 값을 검색하고 ResultSet.getClob().getAsciiStream()
을 사용하여 UTF-8
인코딩을 사용하여 문자열로 변환하려고하면 올바른 XML이 표시됩니다.java.sql.ResultSet.getString는() 나는 최근 <strong>자바</strong>와 <strong>오라클 DB</strong>에서 <strong>CLOB</strong> 값을 검색하려고에 문제가 발생하여 추가 문자
그러나 ResultSet.getString()
을 사용하면 XML 구문 분석기가 구문 분석 예외로 실패합니다.
디버깅하는 동안 추출 된 값은 this입니다. 그리고 파일의 절반 만 포함합니다.
기타 XML 파일은 ResultSet.getString()
과 함께 선택할 수 있습니다.
손상되고 유효한 XML의 ASCII 표현에 눈에 띄는 차이점을 보지 못했습니다.
데이터베이스에 동일한 값을 다시 삽입하면 문제가 해결됩니다.
이 동작을 ResultSet.getString()
방법으로 설명 할 수 있습니까? JDK에 대한 오라클에 대한
정보
Oracle version is 12.1.0.2.0.
정보 : 내가 어떤 이유로 그 반환 CLOB의 저장 주소를 믿고 당신이 getCLOB으로 그것을 얻을 때 XML을 만드는
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.0.1.el7_3-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
'ResultSet.getString()'과'ResultSet.getClob()'은 저장된 파일의 데이터를 반환합니다. 저장된 XML이 유효합니다. 그리고 내가 지적한 것처럼 데이터베이스에 같은 값을 삽입하면 오류가 사라집니다. –