私は iseries/DB2 にあまり詳しくありません。ただし、それをプライマリ データベースとして使用する Web サイトで作業しています。
最近、新しい列が既存のテーブルに追加されました。AS400 経由で表示すると、次のデータ型が表示されます。
Type: S
Length: 9
Dec: 2
これは、小数点の前に 6 桁、小数点の後に 2 桁の数値フィールドであることがわかります。
単純な SELECT ( SELECT MYCOL FROM MYTABLE
) でデータをクエリすると、問題なくすべてのレコードが返されます。ただし、同じ列でDISTINCT
、GROUP BY
、またはを使用しようとするORDER BY
と、次の例外が発生します。
[SQL0802] Data conversion of data mapping error
少なくとも 1 つのレコードに無効なデータが含まれていると推測しました。これは、DBA が「空白」または「4 O」と呼んでいるものです。しかし、これはどのように可能ですか?その列に無効なデータを追加しようとすると、データベースは例外をスローするべきではありませんか?
クエリでこれらの不良レコードを除外するなど、これを回避する方法はありますか?