RowCount,Table must Exist, Delete All Rows from Table keywor



我是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命令可以得到相同的结果,但它将以这种方式工作。

我希望它能对有所帮助

最新更新