문제

resultSet에서 파일을 읽고 있으며 파일을 Oracle 데이터베이스에 저장해야합니다.

...
ResultSet rs = ...
java.sql.Blob myfile = rs.getBlob("field")
java.io.OutputStream os = ((oracle.sql.BLOB) myfile).getBinaryOutputStream();

이 오류 메시지를받습니다

java.lang.ClassCastException

이에 대한 해결책이 있습니까? 감사!

도움이 되었습니까?

해결책 3

해결책을 찾았습니다. 이 문제가있는 사람들과 공유하고 싶습니다.

Oracle Blob에서 OutputStream을 얻는 코드는 다음과 같습니다.

java.io.OutputStream os = ((oracle.sql.BLOB) myBlob).setBinaryStream(1L);

setBinaryStream ()은 실제로 java.io.outputStream 객체를 반환합니다

다른 팁

java.sql.Blob 인터페이스입니다. 아마도 구현은 귀하에게 반환되었습니다 ResultSet 다른 구현입니다 oracle.sql.BLOB?

무엇을 하는가 myfile.getClass() 반품?

당신은 거기에 oracle.sql.blob이없는 것 같습니다 (당신이 그렇게한다면, 그것은 작동해야합니다. Blob은 blob을 구현합니다). ClassScastException은 무엇이라고 말합니까?

어떤 버전의 Oracle과 어떤 버전의 JDBC 드라이버를 사용하고 있습니까?

getBinaryOutputStream 어쨌든 더 이상 사용되지 않으면 사용해야합니다 setbinarystream JDBC (3.0) 인터페이스에서는 아마도 Oracle의 내부 클래스로 이동할 필요가 없을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top