java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes
위와 같은 에러가 발생합니다..
jdbc는
msutil.jar(59k)
mssqlserver.jar(64k)
msbase.jar (284k)
를 사용합니다.
고수님들 의견 부탁드립니다.
저도 동일한 문제에 대해 찾고 있습니다.
ㅡㅡ;;
아직 정확한 답이 없네요.
전 이렇습니다.
제 컴퓨터에선 실행이 아주 잘되는데 서버에 가면 오류가 나타납니다.
아마도 컴퓨터 세팅이 영향을 미치는듯 합니다.
혹시라도 참고 되라고..
http://www.mcse.ms/message389142.html
MS쪽 버그 인거 같기두 한데...
답 아시면.. 꼭 연락좀... 답글 부탁드립니다.
저도 같은 문제로 고민중입니다.
jdk1.4.2버젼에서 MSSQL JDBC문제입니다. JDBC는 SQL Server 2000 Driver for JDBC Service Pack 2 11/6/2003 에 배포된 버젼 -->> 내가 알기론 가장 최근의 드라이버임. 테이블의 데이터 타입이 text일 경우 resultSet.getString("columnName"); 이 부분이 에러가 납니다. "" 또는 NULL일 경우에 에러가 나는데 이 문제 해결하신분계시나요? JVM을 업하는 중에 발생하는 에러네요. jdk1.4.1버젼에서는 잘 되었었는데..ㅠ.ㅠ
해결하긴 했는데.. 임시방편으로 했습니다.. (왕 노가다...)
각 컬럼마다 아래와 같이 varchar로 변환하여 읽어 보니 되더군요..
Convert(varchar(500),com_workarea) as com_workarea
이외에는 방법을 찾을수 없었습니다.
문제는 text 인거 같습니다.
그래서 이렇게 처리를 하면 어떨지..
모든 text 타입의 컬럼을 가져 올 때는...
SELECT ISNULL( txtcol, " ") FROM TABLE.
이렇게 하면 되지 않을까 합니다.
이것두 임시 방편~ ^^a
DATALENGTH 함수를 쓰면 됩니다.
ex) content 칼럼 데이타타입이 text 인 경우
SELECT CASE DATALENGTH(CONTENT) WHEN 0 THEN ' ' ELSE CONTENT ENDFROM [테이블명]
자바코드라면 값을 받아서 trim() 함수를 쓰는게 현재로선
가장 좋은 방법일 듯싶습니다.