Загрузка процедур VoltDB через классы Java с помощью InProcessVoltDBServer - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь загрузить Java-процедуры VoltDB из методов и классов через jar со следующим оператором:

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

После запуска файла jar с java -jar я получаю следующее сообщение об ошибке:

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

Мне ясно, на что указывает сообщение, но я не уверен, почему он не распознает эту команду?

Возможно, этот конкретный синтаксис связан только с sqlcmd?Если это так, есть ли другой способ выполнить загрузку классов через код Java?

Я использую InProcessVoltDBServer и пытаюсь загрузить все DDLs и DMLs из sqlфайл сценария для настройки среды для интеграционных тестов.

Кроме того, я следовал этому руководству для настройки проекта в STS.

Может кто-нибудь, пожалуйста, пролить светна что я тут не так делаю?Возможно, невозможно загрузить DML (тестовые данные), как это?

1 Ответ

0 голосов
/ 21 февраля 2019

Команда «LOAD CLASSES» поддерживается только в sqlcmd.Он не используется и не поддерживается облегченным InProcessVoltDBServer.

В руководстве процедура java создается и тестируется, но явного шага для загрузки класса нет.Когда команда DDL "СОЗДАТЬ ПРОЦЕДУРУ РАЗДЕЛА НА ТАБЛИЦЕ, foo COLUMN ID ИЗ КЛАССОВОГО РАЗВИТИЯ.выполняется процедура. Класс UpdateFoo уже доступен.Это может быть потому, что процедура и тестирование находятся в одном проекте Eclipse.Если бы процедура была разработана отдельно, вам нужно было бы загрузить jar в classpath для проекта Eclipse, где вы разрабатываете тесты.

Раскрытие информации: я работаю в VoltDB.

...