クエリーを実行すると「クエリー実行中失敗しました。カラムXXXXXへの割り当て時に変換エラー。SQLCODE=-406」が表示され、クエリーが実行できない場合がございます。
当エラーは下記が原因の可能性がございます。
- 結果フィールドを使用
- カラムへの値の割り当て変換エラー
カラムの結果が、オーバーフローや浮動小数点のオーバーフロー、浮動小数点のアンダーフロー、浮動小数点変換エラー、正確な結果ではない、無効な数値データとなっていませんでしょうか?
(例1)結果フィールドの追加で除算を設定している場合、0除算がされている可能性
→0除算の可能性がある場合、以下のCASE文を利用して回避が可能です。
サンプル:フィールド1 / フィールド2 の式
CASE WHEN フィールド2 = 0 THEN 0 ELSE フィールド1 / フィールド2 END
※フィールド2の値が"0"の場合は結果を"0"として除算を行わないようにするという式です。
(例2)オーバーフロー(下記のような計算式を結果フィールドで作成して実行)
フィールド1 ⇒ (22*34.2323) + (12*(1212.3422/212))
フィールド2 ⇒ CAST((フィールド1 *280) AS DECIMAL(15,6))
オーバーフローの可能性がある場合、CAST処理を追加します。
サンプル①
フィールド1 ⇒ (22*34.2323 + 12*(1212.3422/212))
フィールド2 ⇒ CAST((CAST(フィールド1 AS DECIMAL(15,6)) *280) AS DECIMAL(15,6))
サンプル②
フィールド1 ⇒ CAST((22*34.2323 + 12*(1212.3422/212)) AS DECIMAL(15,6))
フィールド2 ⇒ CAST((フィールド1 *280) AS DECIMAL(15,6))
SQLCODE=-802 のエラーと似ておりますが、結果フィールドが原因の可能性が高いため、結果フィールドの式と結果フィールドで使用しているカラムのデータ内容をご確認ください。
コメント
0件のコメント
サインインしてコメントを残してください。