Fastload APIに続く を使用しようとしています
接続...などは完璧です。
失敗した場所を正確に知っています
...........
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
...........
例外は
Exception in thread "main" Java.lang.IllegalStateException: Sample failed.
[ODBC Teradata Driver] Invalid precision: cbColDef value out of range
これがアップロードしようとしているテーブルです。 .csv
形式であり、メモ帳で開くと次のようになります
1,9,Win
2,9,Winc
3,9,Wi
なぜこの例外が発生するのですか?どうすれば改善できますか?私が理解している限り、問題はpstmtFld.setAsciiStream(1, dataStream, -1);
が何らかの形でデータセットを受け入れず、例外をスローすることです
通常、 IllegalStateException
は、「メソッドが不正または不適切な時間に呼び出されたこと」を示すために使用されます。ただし、これは特に一般的な使用方法ではありません。
リンクしたコードは、259行目でそのコード内がスローできることを示していますが、SQLException
を標準出力にダンプした後にのみです。
その例外だけでは何が間違っているのかわかりません-より良いコードは元のSQLException
を「原因」例外として使用します(または元の例外をスタックに伝播させます)-の詳細を見ることができるはずです標準出力。その情報を見ると、例外の原因を確認して修正できるはずです。
package com.concepttimes.Java;
import Java.util.ArrayList;
import Java.util.Iterator;
import Java.util.List;
public class IllegalStateExceptionDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
List al = new ArrayList();
al.add("Sachin");
al.add("Rahul");
al.add("saurav");
Iterator itr = al.iterator();
while (itr.hasNext()) {
itr.remove();
}
}
}
IllegalStateExceptionは、メソッドが間違ったタイミングで呼び出されたことを通知します。以下の例では、それを見ることができます。 remove()メソッドは、whileループで要素が使用されると同時に呼び出されます。
詳細については、以下のリンクを参照してください。 http://www.elitmuszone.com/elitmus/illegalstateexception-in-Java/
Illegal State Exceptionは未チェックの例外です。
メソッドが間違った時間に呼び出されたことを示します。
例:
Thread t = new Thread();
t.start();
//
//
t.start();
出力:
Runtime Excpetion: IllegalThreadStateException
スレッドを再び開始することはできません。IllegalStateExceptionがスローされます。