HASH4 スカラー関数
HASH4 関数は、入力データの 32 ビットのチェックサム・ハッシュを戻します。この関数は、232 個の異なる戻り値を提供します。データ検索 (ルックアップ) で使用できます。
スキーマは SYSIBM です。
- string-expression
- ハッシュするストリング値を表す式。この式は、組み込みの文字ストリング、グラフィック・ストリング、バイナリー・ストリング、数値、ブール値、または日時値を返す必要があります。 値が文字ストリング、GRAPHIC ストリング、バイナリー・ストリングでない場合は、関数の評価の前に VARCHAR に暗黙的にキャストされます。
- algorithm
- ハッシュに使用するアルゴリズムを指定する式。
この式は、数値、CHAR、または VARCHAR の組み込みデータ・タイプの値を戻す必要があります。Unicode データベースでは、
式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。
INTEGER でない式は、関数の評価の前に INTEGER にキャストされます。
アルゴリズムの値は、0 と 1 のいずれかです。0 は Adler アルゴリズムを示し、これがデフォルト値です。1 は CRC32 アルゴリズムを示します。 Adler アルゴリズムでは、チェックサム・ハッシュが高速になりますが、メッセージが数百バイトより小さい場合は、対象範囲が狭くなります (対象範囲が狭いというのは、2 つの別々の整数が同じハッシュ値になってしまうことがある、という意味です。そのような結果のことを「衝突」といいます)。その場合は、CRC32 アルゴリズムを使用するか、hash8 に切り替えてください。
結果
結果のデータ・タイプは INTEGER です。最初の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初の引数が NULL の場合には、結果も NULL 値です。
例
以下の例では、テキスト・ストリングのハッシュ値を生成します。
values hash4('Charlie at IBM', 0)
The result is 622396582