SQL Serverでは、T-SQL STRING_ESCAPE()
関数は、テキスト内の特殊文字をエスケープし、エスケープされた文字を含むテキストを返します。
関数を呼び出すときに、引数としてテキストとエスケープタイプを指定します。
構文
構文は次のようになります:
STRING_ESCAPE( text , type )
text エスケープする文字を含むテキストであり、 type 適用するエスケープルールを決定します。
現在、 typeでサポートされている唯一の値 引数は'json'
。
例1-基本的な使用法
仕組みの例を次に示します。
SELECT STRING_ESCAPE('\', 'json') AS Result;
結果:
+----------+ | Result | |----------| | \\ | +----------+
スラッシュをエスケープする例を次に示します。
SELECT STRING_ESCAPE('/', 'json') AS Result;
結果:
+----------+ | Result | |----------| | \/ | +----------+
そして、もう少しテキストを追加した例を次に示します。
SELECT STRING_ESCAPE('Free beer/wine with every lambo!', 'json') AS Result;
結果:
+-----------------------------------+ | Result | |-----------------------------------| | Free beer\/wine with every lambo! | +-----------------------------------+
例2–無効なタイプ
執筆時点では、 typeでサポートされている唯一の値 パラメータは'json'
です 。サポートされていない値を指定すると、次のようになります。
SELECT STRING_ESCAPE('\', 'oops') AS Result;
結果:
An invalid value was specified for argument 2.
エスケープ可能な文字
執筆時点では、STRING_ESCAPE()
関数は、次の表にリストされているJSON特殊文字のみをエスケープできます。
特殊文字 | エンコードされたシーケンス |
---|---|
引用符( ") | \ " |
逆スラッシュ(\) | \ | |
ソリドゥス(/) | \ / |
バックスペース | \ b |
フォームフィード | \ f |
改行 | \ n |
キャリッジリターン | \ r |
水平タブ | \ t |
制御文字 | エンコードされたシーケンス |
---|---|
CHAR(0) | \ u0000 |
CHAR(1) | \ u0001 |
… | … |
CHAR(31) | \ u001f |