HASH4 スカラー関数
HASH4 関数は、入力データの 32 ビットのチェックサム・ハッシュを戻します。 この関数は、232 個の異なる戻り値を提供します。データ検索 (ルックアップ) で使用できます。
スキーマは SYSIBM です。
- ストリング式
- ハッシュするストリング値を表す式。 この式は、組み込みの文字ストリング、グラフィック・ストリング、バイナリー・ストリング、数値、 ブール値、 または日時値を返す必要があります。 値が文字ストリング、GRAPHIC ストリング、バイナリー・ストリングでない場合は、関数の評価の前に VARCHAR に暗黙的にキャストされます。 アルゴリズム
- ハッシュに使用するアルゴリズムを指定する式。 この式は、数値、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