Difference between revisions of "RU/kb/00000179"

From Wiki
Jump to navigationJump to search
(Корректировка стиля и тегов)
 
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<section begin=title /><noinclude>{{DISPLAYTITLE:База Знаний: </noinclude>{{OOoB|1}}. Добавление функций в HSQLDB<noinclude>}}</noinclude><section end=title />
+
<section begin=title /><noinclude>{{DISPLAYTITLE:База Знаний: {{OOoB|1}}. </noinclude>Добавление функций в HSQLDB<noinclude>}}</noinclude><section end=title />
 
{{BreadCrumbL10n|RU/kb/module/base/hsqldb}}
 
{{BreadCrumbL10n|RU/kb/module/base/hsqldb}}
 
__NOTOC__
 
__NOTOC__
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}} и вводим команду
{{RUcode|40|CREATE ALIAS SQRT FOR "java.lang.Math.sqrt"}}
+
<source lang="sql">
 +
CREATE ALIAS SQRT FOR "java.lang.Math.sqrt"
 +
</source>
  
 
Теперь можно выполнять запросы /создавать представления вида
 
Теперь можно выполнять запросы /создавать представления вида
{{RUcode|40|SELECT SQRT(A) , B FROM MYTABLE;}}
+
<source lang="sql">
 +
SELECT SQRT(A) , B FROM MYTABLE;
 +
</source>
  
  
{{Documentation/Note|Данный метод работает только со статически определёнными классами JAVA. Если в классе java процедура определена с "перегрузкой" аргументов, то может быть использован только первый из определённых вариантов функции. Для доступа к остальным вариантам необходимо статически определить соответствующую функцию (процедуру) класса JAVA.}}
+
{{Note|Данный метод работает только со статически определёнными классами JAVA. Если в классе java процедура определена с "перегрузкой" аргументов, то может быть использован только первый из определённых вариантов функции. Для доступа к остальным вариантам необходимо статически определить соответствующую функцию (процедуру) класса JAVA.}}
  
 
<section begin=signature/>
 
<section begin=signature/>
{{RUsignyear|BigAndy|BigAndy|2010}}
+
{{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;


Documentation note.png Данный метод работает только со статически определёнными классами JAVA. Если в классе java процедура определена с "перегрузкой" аргументов, то может быть использован только первый из определённых вариантов функции. Для доступа к остальным вариантам необходимо статически определить соответствующую функцию (процедуру) класса JAVA.










К началу страницы