次の方法で共有


BASE64_DECODE (Transact-SQL)

適用対象: Azure SQL Database SQL 分析エンドポイントと Microsoft Fabric の Warehouse

BASE64_DECODEは、base64 でエンコードされた varchar を対応する varbinary に変換します。

Transact-SQL 構文表記規則

構文

BASE64_DECODE(expression)

引数

式 (expression)

varchar 型 (n | max) の式。

戻り値の型

  • Varbinary(8000).
  • 入力が varchar(max) の場合は Varbinary(max)
  • 入力式が null の場合、出力は null になります。

解説

エンコードされた文字列のアルファベットは RFC 4648 表 1 のアルファベットである必要があります。パディングは必要ありませんが、パディングを含むことがあります。 RFC 4648 表 2 で指定された URL セーフなアルファベットも許容されます。 この関数は空白文字 (\n\r\t ) を無視します。

  • RFC 4648 で指定された標準または URL セーフなアルファベットに含まれない文字が入力に含まれる場合、関数はエラー (メッセージ 9803、レベル 16、状態 20、行 15、"Base64Decode" 型に対する無効なデータ) を返します。
  • データに有効な文字が含まれていても、書式が正しくない場合、関数はエラー メッセージ 9803、状態 21 を返します。
  • 入力に 2 つ以上のパディング文字または追加の有効な入力が続くパディング文字が含まれる場合、関数はエラー メッセージ 9803、状態 23 を返します。

A. 標準の BASE64_DECODE

次の例では、base64 でエンコードされた文字列が varbinary にデコードされます。

SELECT BASE64_DECODE ('qQ==');

結果セットは次のようになります。

-------------
0xA9

(1 row affected)

B. 標準の base64 文字列に BASE64_DECODE を実行する

次の例では、文字列は base64 でデコードされます。 文字列に URL アンセーフ文字の =/ が含まれていることに注意してください。

SELECT BASE64_DECODE('yv7K/g==')

結果セットは次のようになります。

------------  
0xCAFECAFE

(1 row affected)

C. varchar url_safe base64 文字列に BASE64_DECODE を実行する

例 B とは対照的に、この例の base64 文字列は RFC 4648 表 2 (url_safe) を使用してエンコードされましたが、例 B と同じ方法でデコードできます。

SELECT BASE64_DECODE('yv7K_g')

結果セットは次のようになります。

------------  
0xCAFECAFE
(1 row affected)

D. BASE64_DECODE varchar に base64 アルファベット以外の文字が含まれる

この例には、有効な base64 文字ではない文字が含まれます。

SELECT BASE64_DECODE('qQ!!')

結果セットは次のようになります。

Msg 9803, Level 16, State 20, Line 223
Invalid data for type "Base64Decode".

次のステップ