3

Teradata PROD にはアクセスできず、スクリプトを開発し、SIT、UAT でテストします。PROD に昇格すると、次のエラーが発生することがあります。

無効な日付/タイムスタンプ
数値オーバーフローが発生しました
翻訳不能文字
....

エラーが発生した正確な列名が Teradata に表示されないのはなぜですか?

約 20 列が varchar から日付/タイムスタンプにキャストされ、約 10 列が数値オーバーフローが発生する傾向があるスクリプトを実行する必要があります。これが原因である可能性があることを想定して、各列を個別に確認する必要があります。エラーが列名を表示すると、より安心できます。

これまで実装されていなかったので、実行時エラーのためにこれがもっと複​​雑になるはずだったと思います。ただし、ET_、UV_ エラー テーブル名は、これらのエラーの一部をキャプチャします (すべてではない可能性があります)。

ET_、UV_テーブルでいつ可能だったのか説明していただけますか?通常のSQLクエリでエラーが発生した列を表示するように実装できないのはなぜですか?

4

1 に答える 1

1

これらの実行時エラーは、必ずしも特定の列ではなく、何らかの値に対する操作に関連付けられています。式の結果である可能性もあります。

クエリ内のすべての誤りのある式を元の SQL の対応する部分に関連付けると、特定のオーバーヘッドが発生すると思います。それには、かなりの量の開発作業が必要になることは間違いありません。これについては、Teradata の担当者にお問い合わせください。

ET/UV テーブルは、外部データを処理する TPT によって維持され、予期しない値に遭遇する可能性が高くなります。

これが一般的な状況である場合は、おそらくデータをクレンジングする必要があります。通常、組み込みの SQL 関数または UDF を使用して、リストされたエラーの原因となっている行を見つける方法があります。次に例を示します。

( CAST が成功するかどうかを確認する一般的な方法はないようです。)

于 2016-02-13T14:15:42.807 に答える