java - 使用 InProcessVoltDBServer 通过 Java 类加载 VoltDB 过程

标签 java sqlcmd voltdb

我正在尝试使用以下语句通过 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 脚本文件加载所有 DDLDML 以便设置集成测试环境。

另外,我已经关注了this guide在STS中设置项目。

有人可以解释一下我在这里做错了什么吗? 也许无法像这样加载 DML(测试数据)?

最佳答案

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

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

披露:我在 VoltDB 工作。

关于java - 使用 InProcessVoltDBServer 通过 Java 类加载 VoltDB 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54809920/

相关文章:

java - 列表排序难题

asp-classic - 如何从 ASP 页运行 sqlcmd.exe?

java - 如何使用 VoltDB 中的最终字符串创建动态字段的 sql 查询?

java - 如何在eclipse中设置环境来创建VoltDB存储过程?

java - 我应该避免在 Java 的 if 语句中使用 "!"吗?

java - 使用批处理查找java PID

sql-server - 如何在 T-SQL 脚本中声明在运行的多个脚本中通用的变量

sql - 如何在 SQL Server 2012 上运行 1 GB .sql 文件?

java - 在 voltdb 中插入值列表

java - 当同一部分被调用两次时,CompletableFuture 的 "SupplyAsync"部分会发生什么