База Знаний: Base. Добавление функций в HSQLDB
Часто приходится создавать запросы с применением нестандартных функций. В терминах HSQLDB функции, не описанные в ее интерфейсе, являются нестандартными. Не определена даже такая простая функция, как извлчение квадратного корня. Для определения новых функций необходимо использовать встроенные процедуры. В HSQLDB 1.8 встроенные процедуры реализованы только при помощи классов JAVA. Выбираем пункт меню Сервис → SQL и вводим команду
CREATE ALIAS SQRT FOR "java.lang.Math.sqrt"
Теперь можно выполнять запросы/создавать представления вида
SELECT SQRT(A) , B FROM MYTABLE;
Подробнее о классах java MAth можно посмотреть здесь
Примечание: Данный метод работает только со статически определенными классами JAVA. Если в классе java процедура определена с "перегрузкой" аргументов, то может быть использован только первый из определённых вариантов функции. Для доступа к остальным вариантам необходимо статически определить соответствующую функцию (процедуру) класса JAVA.