Построение строки вставки в sql имеет проблемы с CSV/Json
Я пытаюсь построить строку из .CSV
файл. Я конвертирую его в Json и хочу создать оператор вставки для моего SQL Server.
Я использую ChoETL nuget для преобразования из csv в json.
Когда я строю свою строку, я получаю следующее:
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000'"
}')
Как видно после цифры 1000. E сть'
персонаж. И это заставляет мою строку вызывать ошибку, потому что она заканчивает строку.
Как мне удалить это '
персонаж или сделать что-нибудь умное?
2 ответа
Решение
Если у вас есть строка JSON, не вставляйте ее в оператор SQL. Вместо этого используйте параметр.
Это решает вашу проблему и защищает вас от атак SQL-инъекций.
Insert into dbo.JsonMeta (Json) values(@json)
Просто поставьте рядом с ним еще одну одинарную кавычку. Вы все равно сохраните эту одинарную кавычку в данных.
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000''"
}')