Для операторов -is и -as требуется тип, с которым можно сравнивать. Если вы не уверены, каким может быть тип, попробуйте оценить содержимое (частичный список типов):
(Invoke-Expression '1.5').GetType().Name -match 'byte|short|int32|long|sbyte|ushort|uint32|ulong|float|double|decimal'
Хорошо это или плохо, он также может работать с шестнадцатеричными значениями (Invoke-Expression '0xA '...)
У меня работает следующее:
Запустите сервер из вашего кода, который показан в коде org.hsqldb.test.TestBase в исходном коде HSQLDB. Что-то вроде:
Server server = new Server();
server.setDatabaseName(0, "test");
server.setDatabasePath(0, "file:/path/to/db");
server.start();
В той же JVM откройте подключение к той же базе данных так, как вы бы сделали это в обычной (не серверной) программе, например:
conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
Затем используйте conn для выполнения любого SQL, который вы хотите.
В моих собственных экспериментах это, похоже, работает, причем работает как для базы данных в памяти, так и для файловой базы данных.
Другие JVM, конечно, должны будут подключаться к серверу с помощью TCP. Попытка открыть файл базы данных непосредственно в другой JVM приведет к обычной ошибке о том, что база данных заблокирована.
У меня есть опыт запуска HQLDB на сервере режим вне приложения и подключение нескольких приложений к базе данных.
Как описано в документе , процесс является прямым.