DB2 JDBCで実行中の選択照会があります。 Prepared Statementを使用して、パラメータの値を渡します。データベースのそのパラメーターの列の長さは12です。したがって、値の長さが12になるまですべて正常に機能し、失敗します。タイトルのように、エラーメッセージとともに例外をスローします。私はいくつかの検索を行なったし、次のリンクhttp://www-01.ibm.com/support/docview.wss?uid=swg21319477で説明を見つけて、そこに記載された解像度はようDB2 jdbc SQLエラー:SQLCODE = -302、SQLSTATE = 22001選択時
を下回っている問題 の解決よりも大きい値で、クエリを防止するために、追加のクライアント側の検証コードを追加します。最大長の実行が許可されました。
私はこれをしたくありません。なぜクエリが返されず、結果が返ってこないのでしょうか。どのようなアイデアを私はこれについてどうやって行くのですか?
EDIT
String sql = "select student_id, student_name from student where student_id = ?";
try (Connection connection = DBUtils.GetConnection)
{
try (PreparedStatement statement = connection.prepareStatement(sql))
{
statement.setString(1, student_id);
ResultSet result = statement.executeQuery();
while (result.next())
{
//...
}
}
}
あなたはに渡しています文字列または数値ですか?あなたは常に価値を渡していると確信していますか? – xQbert
はい。私は値を渡していることを確信しており、データ型は文字列(dbでvarchar)です。 – Abhi
データベース内でvarchar(12)を使用し、12文字の文字列を渡すと失敗しますか?空白(または非表示文字)を渡している値に12+にしていないことを確かめていますか? 12 = 12だから、うまくいくはずですが、余分な文字が見えない場合は(スペース、他の非表示文字を入力してください)、13を渡すことがあります。私は渡された値の長さを出力し、問題をデバッグするために12を保証します。 – xQbert