pb提交oracle字符串中包含单引号的问题
s_sql="update info set password='"+sle_2.text+"' where name='"+ddlb_1.text+"'"
EXECUTE IMMEDIATE :s_sql USING sqlca;
现在sle_2.text有可能包含单引号、双引号,所以提交到oracle时,就成了这样:
update info set password='dk3'sdf' where name='zzh',报错,请教一下怎么处理这个问题
[解决办法]
处理字符串,
string ls_value1
ls_value1 = sle_2.text
if pos(value1,"'")>0 then
...
ls_value1 = ...+"'"+...
elseif pos(value1,'"')>0
ls_value1 = ...+'"'+...
end if
有多个引号利用do while ...loop处理数据。
[解决办法]
其实不复杂,做个全局替换Function,但也要逐个分隔字符串。
[解决办法]
把字符串里的',''加上~来转义
[解决办法]
出错的原因是sle_2.text中的单引号没有加oracle的转义符,使用替换功能加上转义符就可以了。
String ls_StrLong ll_Posls_Str = sle_2.Textll_Pos = Pos(ls_Str, "'")Do While ll_Pos > 0 ls_Str = Replace(ls_Str, ll_Pos, "''") ll_Pos ++Loop
[解决办法]
自己写个replace函数将单引号替换成两个单引号
[解决办法]
其实不复杂,做个全局替换Function