使用 InProcessVoltDBServer 通过 Java 类 加载 VoltDB 程序

Loading VoltDB procedures via Java classes with InProcessVoltDBServer

我正在尝试使用以下语句通过 jar 从方法和 类 加载 VoltDB Java 过程:

InProcessVoltDBServer volt = new InProcessVoltDBServer();
volt.runDDLFromString("load classes StoredProcs.jar;");

在 运行 包含 java -jar 的 jar 文件之后,我收到以下错误消息:

SQL error while compiling query: SQL Syntax error in "LOAD CLASSES StoredProcs.jar" unexpected token: LOAD
...

我很清楚消息指向什么,但我不确定为什么它无法识别此命令?

这个特定的语法可能只与 sqlcmd 相关吗? 如果是,是否有另一种方法通过 java 代码执行 类 的加载?

我正在使用 InProcessVoltDBServer 并尝试从 sql 脚本文件加载所有 DDLsDMLs 以便为集成测试设置环境。

此外,我已经按照 this guide 在 STS 中设置项目。

任何人都可以阐明我在这里做错了什么吗? 也许不能像这样加载 DML(测试数据)?

"LOAD CLASSES" 命令仅在 sqlcmd 中受支持。轻量级 InProcessVoltDBServer 不使用或不支持它。

在指南中,创建并测试了 java 过程,但没有明确的步骤来加载 class。当执行DDL命令"CREATE PROCEDURE PARTITION ON TABLE foo COLUMN id FROM CLASS procedures.UpdateFoo;"时,procedures.UpdateFooclass已经可用。这可能是因为程序和测试在同一个 Eclipse 项目中。如果该过程是单独开发的,您需要将 jar 加载到您开发测试的 Eclipse 项目的 class 路径中。

披露:我在 VoltDB 工作。