バイナリデータの使用¶
BINARY データ型の有用性と柔軟性は、例を使うと最もよく実証できます。このトピックでは、 BINARY データ型とその3つのエンコードスキームに関連するタスクの実用的な例を示します。
16進数とBase64の間の変換¶
BINARY データ型は、16進数の文字列とBase64の文字列の間で変換する際の中間ステップとして使用できます。
TO_CHAR を使用して16進数からBase64に変換するには、
Base64から16進数に変換するには、
テキストと UTF-8バイトの間の変換¶
Snowflakeの文字列はUnicode文字で構成され、バイナリ値はバイトで構成されます。文字列を UTF-8形式のバイナリ値に変換することにより、Unicode文字を構成するバイトを直接操作できます。
TO_BINARY を使用して、1文字の文字列をバイト単位の UTF-8表現に変換します。
TO_CHAR , TO_VARCHAR を使用して、 UTF-8バイトシーケンスを文字列に変換します。
Base64で MD5 ダイジェストを取得する¶
TO_CHAR を使用してバイナリ MD5 ダイジェストからBase64文字列に変換するには、
可変形式のバイナリへの変換¶
文字列から抽出されたバイナリ形式を使用して、文字列をバイナリ値に変換します。このステートメントには、 TRY_TO_BINARY および SPLIT_PART 関数が含まれています。
変換のために複数の形式を試します。
注釈
上記のクエリは TRY_TO_BINARY を使用しているため、形式が認識されなかったり、指定された形式で文字列が解析できなかったりすると、結果は NULL になります。
JavaScript UDF のカスタムデコーディング¶
BINARY データ型により、任意のデータを保存できます。JavaScript UDFs は Uint8Array を介してデータ型をサポートしているため( JavaScript UDFs の紹介 を参照)、 JavaScriptでカスタムデコードロジックを実装できます。これは最も効率的な作業方法ではありませんが、非常に強力です。
最初のバイトに基づいてデコードする関数を作成します。