0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflakeにおけるマスキングポリシーの挙動(文字列結合)について

Last updated at Posted at 2026-01-06

概要

Snowflakeのマスキングポリシーにおいて、元のテーブルの桁数を超えるマスクデータと他のデータを結合する際に、エラー発生する事象がありました。
今回あらためて確認したところ、この事象が解消されているようでしたので、本記事で解説します。
再度確認したところ解消されていなかったので、回避方法を追記します。

発生していた事象

例えば、ID列(2桁)に対して10桁のマスキングを設定している場合に、他の列と文字結合を行うと、桁数オーバーによりエラーが発生していました。

原因

クエリ実行時の処理において、文字結合を行う場合に限り、マスクデータが元のデータとして扱われていました。
その結果、マスク文字列が元の桁数を超えていることで、エラーとして処理されていました。

現在の動作

現在は、同様のクエリを実行しても問題なく処理が完了します。
マスクデータと文字結合を検討されている場合や、以前エラーが発生して対応を断念されたケースでも、あらためて試してみるとよいでしょう。

まだ解消されていない、もしくは仕様として受け入れるしかないため、回避方法を記載します。

注意
今回の確認に使用したのはトライアルアカウントですので、使用しているプランやリージョンによって異なる場合があります。検証環境を用いて事前に確認されることをお勧めします。

動作確認

検証用に1からテーブルを作成してみます。(トライアルアカウント使用)

1.テーブルを作成し、データを挿入
image.png
2.マスキングポリシーを作成し、ID列に設定
※SYSADMINにマスキングがかかるよう設定
image.png
3.マスクデータと他データを文字結合し、エラーを確認
image.png
4.回避方法
今回はID列(2桁)とFLG列(1桁)のデータがマスキングにより11桁扱いになったため、桁数オーバーのエラーとなりました。
そのため、いずれかの列を11桁以上に再キャストすることで回避が可能です。
※今回はID列を「::VARCHAR」で再キャストしました。これ以外にTO_VARCHARも使用可能です。
image.png

本記事は以上です。ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?