【问题标题】:Query returns Error despite being executed succesfully (Robot Framework / JayDeBeApi)尽管成功执行,查询仍返回错误(Robot Framework / JayDeBeApi)
【发布时间】:2021-02-03 12:57:41
【问题描述】:

将 Robot Framework DatabaseLibrary JayDeBeApi 中的关键字 Query 与 DB2 结合使用,如下所示:${results}= Query CREATE TABLE SCHEMANAME.TEST_TEMP (id BIGINT, name VARCHAR(25)) 正在执行(之后存在表)。

但尽管如此,RobotFramework 还是会抛出一个 FAIL 并且 ${results} 包含消息 DatabaseError: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-601, SQLSTATE=42710, SQLERRMC=SCHEMANAME.TEST_TEMP;TABLE, DRIVER=4.14.122,并且在运行相同的语句后通常甚至包含一个非常简单的消息 Error

直接在数据库 SQL 窗口中运行上述查询(复制/粘贴)不会返回任何错误

怎么可能,在RobotFramework中查询成功执行了,但还是抛出了错误?

【问题讨论】:

  • 您确定Query 关键字是正确的吗?我的意思是文档提到 selectStatement 作为其唯一的参数 (franz-see.github.io/Robotframework-Database-Library/api/0.5/…),而您没有传入 select 语句。
  • 嗯,我想你是对的。 'Query' 并不是一般意义上的 SQL,而只是 SELECT 语句。 'Execute Sql String' 将是 INSERT 或 DROP 的正确关键字。谢谢!

标签: db2 robotframework jaydebeapi


【解决方案1】:

错误 SQLCODE=-601 表示您正在尝试创建一个已经存在的对象。因此,当您说该表在之后存在时,这意味着它在您运行该语句之前就存在。我不知道您使用的框架,但@pavelsaman 在评论中的解释似乎是一个很可能的原因。

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 2018-12-29
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多