Валидация данных передаваемых в процедуру
Имеется сторонняя система, которая вызывает процедуру на SQL Server. Проблема в том, что данные могут содержать одинарную кавычку, что вызовет ошибку.
Имеется ли способ от этого защититься (валидировать), чтобы не получать ошибки?
Пример:
execute PRC @abc = '{"code": "500 Internal Server Error","status": "'Unable to complete the operation')"}'
Разумеется возвратит
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Unable'.
Ответы (1 шт):
Автор решения: Andrew Nikolaev
→ Ссылка
Просто перед передачей строки выполните функцию ЗАМЕНЫ одной одинарной кавычки на две одинарных кавычки.
Например @abc = ЗАМЕНИТЬ(@abc, "'", "''")
execute PRC @abc = '{"code": "500 Internal Server Error","status": "''Unable to complete the operation'')"}'