我是robotframework的新手,我正在努力掌握DatabaseLibrary的关键字。我在3个这样的关键词上出错了。
1) 我使用的rowcount关键字如下-
${rowCount} Row Count <sql query>
不管表中的行数如何,我总是得到${rowCount}=0。
2) 我正在使用删除表中的所有行如下-
Delete All Rows From Table <Table_Name>
我得到了ORA-00911:无效字符,但如果将同一个表与Query等其他关键字一起使用,则效果良好。
3) 我使用的表必须存在如下-
Table Must Exist <Table_Name>
我得到ORA-00942:表或视图不存在,但这个表在那里。
请帮我找出我做错了什么。
提前感谢!!!
我可能错了,但我相信一位同事告诉我存在问题,至少Row Count关键字有问题。
然而,对于这三个选项都有简单的解决方案,您甚至在问题中通过使用Query或Execute SQL Script 暗示了这些解决方案
1)
${result}= Query Select count(id) from table
${rc} = ${result[0][0]} #Play with this as I forget exact syntax
2) 将删除脚本与测试一起放在测试脚本文件夹中,并使用Execute SQL脚本调用它。您还可以使用Query在确认预期状态之前和之后执行选择查询。
3) 再次对您期望在那里的表执行查询,对id进行简单的行计数即可实现此目的。您可以根据结果设置一个变量,并在需要时稍后再次使用。
我也遇到过类似的问题。我使用cx_Oracle。
对于"表必须存在"关键字,我的问题也是一样的。我真的不明白为什么,但首先我必须使用Encode String to Bytes关键字。我至少需要使用DatabaseLibrary 0.8,因为早期版本没有cx_Oracle的解决方案。这些为我解决了这个问题。
但使用"从表中删除所有行",我仍然有问题。因为这个关键词放了一个;在这行的末尾,如果我理解weel,它会在这行上执行查询,所以它仍然会导致我出现ORA-00911错误。
使用Execute Sql String和DELETE FROM tablename命令可以得到相同的结果,但它将以这种方式工作。
我希望它能对有所帮助