返す行をソートするためのソート操作を実行する場合、Teradata Databaseにより、事前にソート キーが作成され、行に付加されます。ソート キーの長さがシステム上の行の最大長の1 MBを超えると、その操作はエラーを返します。表示されるエラ- メッセージは、状況に応じて以下のいずれかとなります。
- データ行が長すぎます。
- database_object_nameの最大行長を超えました。
これらのメッセージについては、<Teradata Vantage™ - データベース メッセージ、B035-1096>を参照してください。
更新を行なっていないのに、データ行とBYNETソート キーの合計が1 MBのスプール行サイズ制限を超えた場合、可能性として以下の原因が挙げられます。
- システムのDBS制御フィールドのMaxDecimalの値が大きい値に変わったため。これにより、以前は、1、2、4、または8バイトであったDECIMAL列に格納されているバイト数が38バイトまで増加します。<Teradata Vantage™ - データベースの設計、B035-1094>と<Teradata Vantage™データ タイプおよびリテラル、B035-1143>を参照してください。
- サイトが32ビットの位置合わせされた行のアーキテクチャから、64ビットのアーキテクチャのシステムにアップグレードされたため。このアップグレードは、ディスクとメモリの両方で、いくつかのデータ型のデータのサイズが大きくなります。この現象は、配列を8バイトの境界に入れなければならないというバイト境界制約によるものです。これらの制約は、32ビットのアーキテクチャにはありません。したがって、32ビットのシステムではスプール行の1 MBサイズの境界内に収まっていた行が、64ビットのシステムでは、その制限を超える可能性があります。
お使いのシステムで、位置合わせされた行のアーキテクチャではなく、packed64行のアーキテクチャを使用している場合は、この問題は、関係ありません。詳細は、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。
デフォルトでは、列内の他のどのデータよりも先にnullがソートされます。言いかえると、nullは低いレベルにソートされるということです。たとえば、5、3、null、1、4、および2というフィールド集合をソートすると仮定します。
この値は次のようにソートされます。
null 1 2 3 4 5
デフォルトでは、文字式の結果の値は、現在のセッションで有効な照合順序を使用して昇順にソートされます。