Difference between revisions of "RU/kb/00000179"
From Wiki
Jump to navigationJump to search (Корректировка ссылки) |
|||
(4 intermediate revisions by 2 users 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/> | ||
− | {{ | + | {{SignYear|BigAndy|А. А. Рыбак|2010}} |
<section end=signature/> | <section end=signature/> | ||
{{RUkbBaseBottom}} | {{RUkbBaseBottom}} |
Latest revision as of 16:04, 27 August 2011
Часто приходится создавать запросы с применением нестандартных функций. В терминах HSQLDB функции, не описанные в её интерфейсе, являются нестандартными. Не определена даже такая простая функция, как извлечение квадратного корня.
Для определения новых функций необходимо использовать встроенные процедуры.
В HSQLDB 1.8 встроенные процедуры реализованы только при помощи классов JAVA[1].
Выбираем пункт меню Сервис → SQL и вводим команду
CREATE ALIAS SQRT FOR "java.lang.Math.sqrt"
Теперь можно выполнять запросы /создавать представления вида
SELECT SQRT(A) , B FROM MYTABLE;