0

voltQueueSQLExperimental() 関数を使用して volt db で動的挿入クエリを実行しようとすると、エラーが発生します。ボルトWebスタジオで個別に実行したため、SQLは問題ありません。エラーは次のとおりです。

Error: VOLTDB ERROR: USER ABORT Attempted to queue DML adhoc sql 'insert into volt_temp_constraints (asset_id,config_id,session_id,sam_id) values (12,13,'abc',12)' from 読み取り専用プロシージャ at procedure.testPrcUpdateConstraint.run( testPrcUpdateConstraint.java:155)

生成された SQL は動的でアドホックであり、事前に静的に生成することはできないことに注意してください。

4

1 に答える 1

2

ドキュメンテーションは彼らの強みではありません... ;)、しかし、私はあなたのバグを再現することができました.

私が見ているように、VoltDBはコンパイルされたプロシージャを読み取り/書き込みまたは読み取り専用としてマークします。ここから推測できるように。残念ながら、現在のところ、INSERT/UPDTE/UPSERT SQLStatement をオブジェクト プロパティとして作成し、単純に使用しない以外の方法はないようです。

おそらく、開発者の 1 人に連絡して、このための混乱に関する何らかの方法を追加することができます。

ちなみに、例外は次の場所にあります: https://github.com/VoltDB/voltdb/blob/master/src/frontend/org/voltdb/ProcedureRunner.javaの 620 行目

于 2015-02-08T01:34:25.923 に答える