将插入字符串构建到 sql 存在来自 CSV/Json 的问题
Building insert string to sql has problems from CSV/Json
我正在尝试从 .CSV
文件构建字符串。我将其转换为 Json 并想为我的 SQL 服务器构建一个插入语句。
我正在使用 ChoETL nuget 从 csv 转换为 json。
当我构建我的字符串时,我得到了这个:
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000'"
}')
如您所见,在 1000 位之后。有一个 '
字符。这使我的字符串导致错误,因为它结束了字符串。
如何删除这个 '
角色或做一些聪明的事情?
只需在它旁边用另一个单引号转义它。您仍会在数据中保留该单引号。
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000''"
}')
一旦有了 JSON 字符串,就不要将其粘贴到 SQL 语句中。请改用参数。
这解决了您的问题,并且保护您免受SQL注入攻击。
Insert into dbo.JsonMeta (Json) values(@json)
我正在尝试从 .CSV
文件构建字符串。我将其转换为 Json 并想为我的 SQL 服务器构建一个插入语句。
我正在使用 ChoETL nuget 从 csv 转换为 json。
当我构建我的字符串时,我得到了这个:
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000'"
}')
如您所见,在 1000 位之后。有一个 '
字符。这使我的字符串导致错误,因为它结束了字符串。
如何删除这个 '
角色或做一些聪明的事情?
只需在它旁边用另一个单引号转义它。您仍会在数据中保留该单引号。
Insert into dbo.JsonMeta (Json) values('{
"ID": "xxxxx",
"FLYTTEDATO": "01/02/2020",
"FLYTTE_TIDSPUNKT": "1000''"
}')
一旦有了 JSON 字符串,就不要将其粘贴到 SQL 语句中。请改用参数。
这解决了您的问题,并且保护您免受SQL注入攻击。
Insert into dbo.JsonMeta (Json) values(@json)