База Знаний: Base. Добавление функций в HSQLDB

From Apache OpenOffice Wiki
< RU‎ | kb
Revision as of 06:53, 8 October 2010 by BigAndy (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Template:RUneedsrework


Часто приходится создавать запросы с применением нестандартных функций. В терминах 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.





BigAndy
2010










Personal tools