问题描述:
在调试程序过程中,sql执行一直报错,后来debug才发现,数据中有 ’ 单引号,数据中的单引号和sql语句冲突。
解决方法:在sql执行之前,判断数据中是否有单引号,将一个单引号替换成为两个单引号
-- 问题sql
update [iexec].[local_quality_web].[commonality_event] set Date_Start='2021-05-02',Date_End='2021-05-17',Result_Text='{"Mean_P_Value":"0.003","Category":"Instance","Brown_Forsythe":"0.000","Welch's_Test":"0.002"}',Master_ID=3517,Product_Type='',Plant='CHQ2', QC_Code = 'HOLE.SHIFT.XAVG;HOLE.SHIFT.XSTD;HOLE.SHIFT.YAVG;HOLE.SHIFT.YSTD' where Event_ID=474261
-- 修改之后的sql
update [iexec].[local_quality_web].[commonality_event] set Date_Start='2021-05-02',Date_End='2021-05-17',Result_Text='{"Mean_P_Value":"0.003","Category":"Instance","Brown_Forsythe":"0.000","Welch''s_Test":"0.002"}',Master_ID=3517,Product_Type='',Plant='CHQ2', QC_Code = 'HOLE.SHIFT.XAVG;HOLE.SHIFT.XSTD;HOLE.SHIFT.YAVG;HOLE.SHIFT.YSTD' where Event_ID=474261
数据中有一个 “Welch’s_Test”:“0.002”
其中的单引号和sql冲突。
这个表示一个单引号
‘this’‘s’
即this’s
两个单引号在一起表示一个单引号