Difference between revisions of "RU/kb/00000179"
From Apache OpenOffice Wiki
(Корректировка ссылки) |
|||
(One intermediate revision by the same user not shown) | |||
Line 12: | Line 12: | ||
В HSQLDB 1.8 встроенные процедуры реализованы только при помощи классов JAVA<ref>[[RU/kb/sources#31|[31] Подробнее о классах java Math.]]</ref>. | В HSQLDB 1.8 встроенные процедуры реализованы только при помощи классов JAVA<ref>[[RU/kb/sources#31|[31] Подробнее о классах java Math.]]</ref>. | ||
− | Выбираем пункт меню {{Menu|Сервис|SQL}} и вводим команду | + | Выбираем пункт меню {{Menu|Сервис|SQL}} и вводим команду |
− | + | <source lang="sql"> | |
+ | CREATE ALIAS SQRT FOR "java.lang.Math.sqrt" | ||
+ | </source> | ||
Теперь можно выполнять запросы /создавать представления вида | Теперь можно выполнять запросы /создавать представления вида | ||
− | + | <source lang="sql"> | |
+ | SELECT SQRT(A) , B FROM MYTABLE; | ||
+ | </source> | ||
− | {{ | + | {{Note|Данный метод работает только со статически определёнными классами JAVA. Если в классе java процедура определена с "перегрузкой" аргументов, то может быть использован только первый из определённых вариантов функции. Для доступа к остальным вариантам необходимо статически определить соответствующую функцию (процедуру) класса JAVA.}} |
<section begin=signature/> | <section begin=signature/> |
Latest revision as of 13:34, 7 July 2018
< Apache OpenOffice | База знаний | Модули Apache OpenOffice | Apache OpenOffice Base | Встроенная база данных HSQLDB
Часто приходится создавать запросы с применением нестандартных функций. В терминах HSQLDB функции, не описанные в её интерфейсе, являются нестандартными. Не определена даже такая простая функция, как извлечение квадратного корня.
Для определения новых функций необходимо использовать встроенные процедуры.
В HSQLDB 1.8 встроенные процедуры реализованы только при помощи классов JAVA[1].
Выбираем пункт меню Сервис → SQL и вводим команду
CREATE ALIAS SQRT FOR "java.lang.Math.sqrt"
Теперь можно выполнять запросы /создавать представления вида
SELECT SQRT(A) , B FROM MYTABLE;