使用InProcessVoltDBServer通过Java类加载VoltDB过程
我试图通过jar通过以下语句从方法和类加载VoltDB Java过程:使用InProcessVoltDBServer通过Java类加载VoltDB过程,java,sqlcmd,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 St
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代码执行类的加载
我正在使用并尝试从sql脚本文件加载所有DDL
和DML
,以便为集成测试设置环境
此外,我还遵循了在STS中设置项目的步骤
谁能告诉我我做错了什么?
也许这样加载DML(测试数据)是不可能的?只有sqlcmd支持“加载类”命令。轻量级InProcessVoltDBServer不使用或不支持它
在指南中,创建并测试了一个java过程,但没有明确的步骤来加载该类。当执行DDL命令“从类procedures.UpdateFoo;”在表foo列id上创建过程分区时,procedures.UpdateFoo类已经可用。这可能是因为过程和测试在同一个Eclipse项目中。如果该过程是单独开发的,则需要将jar加载到Eclipse项目的类路径中,在该项目中您将开发测试
披露:我在沃尔特DB工作。嗨,本杰明,谢谢你的迅速回复。成功了,谢谢你!还有一个不太明显的部分——我能够用
volt.runDDLFromPath
加载DDL和DML文件,它们只需要被分成两个.sql文件。谢谢,我从未尝试过,但很高兴知道。使用dml脚本要比在java过程调用中封装每条语句容易得多。旧版本的voltdb支持这一点吗?我得到“>load classes test.jar;意外的特别计划错误:java.lang.RuntimeException:编译查询时出错:org.voltdb.planner.PlanningErrorException:使用sqlcmd时“load classes test.jar”中的SQL语法错误。load classes从v5.1开始就受到支持,所以已经有一段时间了。