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 |