В SQL Server, T-SQL STRING_ESCAPE()
функцията избягва специални символи в текстовете и връща текста с екранирани знаци.
Вие предоставяте текста и escape-типа като аргументи при извикване на функцията.
Синтаксис
Синтаксисът е така:
STRING_ESCAPE( 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, изброени в следната таблица:
Специален знак | Кодирана последователност |
---|---|
Кавичка (") | \" |
Обратно солидус (\) | \| |
Солидус (/) | \/ |
Backspace | \b |
Емисия за формуляр | \f |
Нов ред | \n |
Връщане на карета | \r |
Хоризонтален раздел | \t |
Контролен знак | Кодирана последователност |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
… | … |
CHAR(31) | \u001f |