尝试使用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,这不能事先静态生成。
答案 0 :(得分:2)
文档不是他们的力量......;),但我可以重现你的错误。
正如我所看到的,VoltDB将编译过程标记为读写器或只读。可以从here推断。不幸的是,除了创建INSERT / UPDTE / UPSERT SQLStatement作为对象属性并且根本不使用它之外,目前似乎没有任何其他方法。
也许你可以联系其中一位开发人员为此加上一些解决方法。
顺便说一句,可以在这里找到例外:第620行https://github.com/VoltDB/voltdb/blob/master/src/frontend/org/voltdb/ProcedureRunner.java