次の方法で共有


BASE64_DECODE (Transact-SQL)

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

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

Transact-SQL 構文表記規則

構文

BASE64_DECODE ( expression )

引数

式 (expression)

varchar(n) 型または varchar(max)型の式。

戻り値の型

  • 入力が varchar(n) の場合は varbinary(8000)。
  • 入力が varchar(max) の場合は varbinary(max)。
  • 入力式が NULL場合、出力は NULL

解説

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

  • RFC 4648 で指定された標準または URL セーフなアルファベットに含まれていない文字が入力に含まれている場合、関数は次のエラーを返します。

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • データに有効な文字が含まれているが、書式設定が正しくない場合、関数はエラー Msg 9803, State 21を返します。

  • 入力に 2 文字を超える埋め込み文字または埋め込み文字が含まれている場合、その後に追加の有効な入力が続くと、エラー Msg 9803, State 23が返されます。

A. 標準の BASE64_DECODE

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

SELECT BASE64_DECODE('qQ==');

結果セットは次のとおりです。

0xA9

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

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

SELECT BASE64_DECODE('yv7K/g==');

結果セットは次のとおりです。

0xCAFECAFE

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

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

SELECT BASE64_DECODE('yv7K_g');

結果セットは次のとおりです。

0xCAFECAFE

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

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

SELECT BASE64_DECODE('qQ!!');

結果セットは次のとおりです。

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