Javaを使用してMicrosoft SQL Serverデータベースにデータを挿入すると、SQLの切り捨て例外が発生します。しかし例外は、どの列に問題の値があるのかを示していません。データの切り捨てが発生した列を確認する方法
SQL Server Management Studioなど、エラーの詳細を見つける方法はありますか?
注:WindowsでSQL Serverデータベースを使用しています。
Javaを使用してMicrosoft SQL Serverデータベースにデータを挿入すると、SQLの切り捨て例外が発生します。しかし例外は、どの列に問題の値があるのかを示していません。データの切り捨てが発生した列を確認する方法
SQL Server Management Studioなど、エラーの詳細を見つける方法はありますか?
注:WindowsでSQL Serverデータベースを使用しています。
残念ながら、エラーメッセージは、SQL Serverが提供する多くの情報です。
どの行のどの列のどの値が不完全であるかを調べるには、データを分析する必要があります。この種の問題を発見するための一般的なアプローチは、バイナリチョップを実行することです。データの半分または列の半分を削除し、再度挿入を試みます(おそらく実際のテーブルと同じ構造の一時テーブルに)繰り返す。
もしそうなら、残っているデータに少なくとも1つの問題があります。そうでない場合は、問題の原因ではないデータの半分を削除しました。
Javaは "java.sql.DataTruncation:データ切り捨てとスタックトレース"を出力しています。ただし、切り捨てられたデータや列についての詳細は記載されていません。 – Rajasekhar
@Rajasekhar - 私が言ったように、SQL Serverはこのような状況になると、エラーを引き起こすデータを検索する必要がなくなりました。私が言ったように、それを見つけようとする一般的な方法は、(列を削除したり、行を削除して)データの量を半分にして、まだエラーが発生しているかどうかを調べることです –
あなたの提案に感謝します。 – Rajasekhar
Thanks Crowder。そのSQLサーバーのみ。 – Rajasekhar