robotframework 自动化测试 sql 语句 遇到的问题

来源:互联网 发布:吉利知豆d3图片 编辑:程序博客网 时间:2024/05/21 20:24

1.查询的结果为中文,但是显示的是\xe4\xb8\xad\xe8\x9e\x8d\xe6\x96\xb0\xe7\xbb\x8f\xe6\xb5\x8e\xe6\xb7\xb7\xe5\x90\x88A,这是utf-8编码,需要进行转换。网上有很多办法,但对我都没用,比如在DataBaseLibrary文件下的query.py末尾处增加一个函数:

def decode(self,customstr,mode):
        return customstr.decode(mode)

添加后,我导入的DataBaseLibrary变成的红色,最后我是用另外的一种方法,'${a}'.decode('utf-8')结果成功了



2.获取查询的前十条记录,用 fetch first 10 rows only


3.查询顺便格式float,保留两位小数,用cast(round(h.undistribute_monetary_income,2)as numeric(20,2)),h.undistribute_monetary_income为查询的数据。


4.数据库保存的时间格式是01-1月 -50,在sql developer上查询条件可以直接用这个格式,但是在robotframework上查询的话,会提示not a valid month,解决方法是将时间格式进行转换一下就可以了:complete_date=to_date('1950-01-01','yyyy-mm-dd')。


5.sql查询语句,需要用到join (select * from a)这种情况时,若a查到的为空,那么整个sql查到的也会变成get 0 rows,用full join的话,则会返回空值,如果需要进行运算,可以使用nvl(id,0),如果id为null,则替换为0,这样就可以进行运算了。


6.查询sql查询结果有多少条记录,用count(*),直接查询数据库中的表用 select count(*) from A,查询sql的 查询结果用

select count(*) from (select * from A )


7.Oracle 数据库Date类型的时间显示格式是dd-mm月-yy(09-11月-17),查看不了时分秒,可以用to_char进行转换,to_char(updated_date,'yyyy/mm/dd 'hh24:mi:ss) 转换后时间为2017/11/09 14:59:59.


8.模糊查询,限制位数用’_‘,一个表示一个字符,如果既要限制位数,又要限制为数字,则需要用正则表达式,’^20171121[0-9]{5,5}‘

,表示20171121开头,后面限制五位0-9的数字,第一个五为最少出现次数,第二个为最多出现的次数。sql里条件写为:’where regexp_like(a.id,'^20171121[0-9]{5,5}')‘。

持续更新。。。

阅读全文
1 0
原创粉丝点击