Próbuję użyć połączenia following Fastload API itp. Jest doskonały.Co to jest IllegalStateException?
wiem dokładnie gdzie to nie
...........
System.out.println(" Streaming " + dataFile);
pstmtFld.setAsciiStream(1, dataStream, -1); // This line fails
System.out.println("check the above line"); // This does not go to console
...........
Wyjątek jest
Exception in thread "main" java.lang.IllegalStateException: Sample failed.
[ODBC Teradata Driver] Invalid precision: cbColDef value out of range
Oto moja tabela, którą próbuję przesłać. Jest Formatowanie .csv
a kiedy go otworzyć za pomocą notatnika wyglądać następująco
1,9,Win
2,9,Winc
3,9,Wi
Dlaczego otrzymuję ten wyjątek? Jak mogę to poprawić? O ile rozumiem, problem polega na tym, że pstmtFld.setAsciiStream(1, dataStream, -1);
nie akceptuje w żaden sposób zbioru danych i generuje wyjątek.
Zwykle wyrzucam 'IllegalStateException' za każdym razem, gdy złapię coś, co" nie może się wydarzyć "i nie ma innego, bardziej opisowego typu wyjątku, który mogę rzucić. Na przykład, powiedz, że piszę kod, aby wyświetlić obraz, a obraz ma szerokość ujemną - rzucanie czegokolwiek innego byłoby gorsze, więc mogę napisać własny niezaznaczony wyjątek (zalecana praktyka, ale możesz rozważyć uczynienie z niego sprawdzonego wyjątku zamiast tego) lub użyj wbudowanego 'IllegalStateException' jeden. – tucuxi
Zgodnie z http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setAsciiStream%28int,%20java.io.InputStream,%20int%29, czy jest możliwe, że długość pliku (-1) powoduje to? – Lopina