特殊字符测试

测试时(比如查询测试)注意的4个与mysql有关的字符 %  _  '  "

%通配符,代表一个以上的字符。它在数据库中为通配符,如果客户在搜索框中输入“%”,而程序未对输入的字符进行转义,在系统将解释为一个通配符,列出所有结果,而不是只含“%”的数据一般需要解释为“\%”,才可正常搜索出

_通配符,代表单个字符。其原理和“%”符时一样的,大概学过SQL语句的人都知道像这样的句子:

SELECT * FROMStundent WHERE City LIKE 'Ne%',SELECT * FROMStundent WHERE LastName LIKE 'C_r_er' 其中%和_都是通配符,所以未经处理的%和_就会解释为此处的通配符来

'单引号,因SQL语句的字符串是用单引号如果保存或查询时,输入“'”系统未经处理,就会解释为SQL语句的中字符串的单引号,所以会出错

"双引号,同单引号。

*星号,查询全部

---------------------------------------------------------------------------------------华丽丽的分割线--------------------------------------------------------------------------------

众所周知,测试的时候对某些特殊字符需要特别留意。在上周报了一个单引号的bug后,我和开发人员一起讨论了一下对于OracleDB的敏感字符,总结如下。

对于Oracle DB而言,查询的时候需要注意:

1.如果查询条件是free text,而且是模糊匹配,那么要注意测试以下特殊字符:

Group 1:数据库开发人员需要对以下4个字符做特殊处理。所以需要测试是否已经做了正确的处理。

_ (下划线) : Oracle中代表占位符

表示查找含_的字符串。

%(百分号)

表示查找含%的字符串。

‘(单引号)

表示查找含'的字符串

#

表示查找含#的字符串

Group 2:通配符,和需求相关。如果*和?当作通配符处理,则不需要数据库开发人员特殊处理。如果当作其本身这个字符,则需要处理。所以需要测试是否已经做了正确的处理。

*(星号):

代表通配任意多个字符或数字进行查询

?(问号):

代表通配1个字符或数字进行查询

2.如果查询条件是free text,但是精确匹配,那么要注意测试单引号。

3.如果是直接保存某字段,那么没有特殊字符需要注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,282评论 0 4
  • 今天,我们不谈比赛胜负,只给大家安静地讲几个故事。 故事一 这是2007年亚洲杯赛场上的伊拉克国家队,细心的读者是...
    kegoal球学汇阅读 441评论 0 0
  • (一)“千里之行始于足下” 听李泉鸣说,班主任是新上任的。之前的班主任一直带毕业班和优等班,这学期被调走了,“因为...
    读书少女金阅读 301评论 0 1
  • 寄给远方友人的诗 是啊,缕缕的相思之情,是颗颗相连的相思之心。 一首歌告诉我 “外面的世界很精彩”于是...
    winner永勤阅读 311评论 0 0