尝试使用voltQueueSQLExperimental运行andhoc插入查询时出错

时间:2015-01-22 10:01:25

标签: stored-procedures runtime-error voltdb

尝试使用voltQueueSQLExperimental()函数在volt db中执行动态插入查询时出错。 SQL很好,因为我在伏特网工作室单独运行它。错误如下:

  

错误:VOLTDB错误:USER ABORT尝试对DML adhoc sql进行排队   '插入volt_temp_constraints   (asset_id,config_id,session_id,sam_id)值(12,13,'abc',12)'来自   只读程序   procedures.testPrcUpdateConstraint.run(testPrcUpdateConstraint.java:155)

请注意,生成的SQL是动态的,并且是adhoc,这不能事先静态生成。

1 个答案:

答案 0 :(得分:2)

文档不是他们的力量......;),但我可以重现你的错误。

正如我所看到的,VoltDB将编译过程标记为读写器或只读。可以从here推断。不幸的是,除了创建INSERT / UPDTE / UPSERT SQLStatement作为对象属性并且根本不使用它之外,目前似乎没有任何其他方法。

也许你可以联系其中一位开发人员为此加上一些解决方法。

顺便说一句,可以在这里找到例外:第620行https://github.com/VoltDB/voltdb/blob/master/src/frontend/org/voltdb/ProcedureRunner.java