SQL/JRT
SQL/JRT (SQL Routines and Types for the Java Programming Language) — расширение языка SQL, принятое в стандарте SQL:1999[1]. Обеспечивает возможность вызова из SQL-кода статических методов языка программирования Java в качестве хранимых процедуры и использование классов Java в качестве структурированных типов.
Две части расширения первоначально произошли из ранних частей 1 и 2 стандарта SQLJ Американского национального института стандартов (часть 0 этого стандарта позднее стандартизирована ISO в виде расширения SQL/OLB).
Пример определения и последующего вызова java-функции (из руководства HSQLDB):
CREATE FUNCTION sinh(v DOUBLE) RETURNS DOUBLE
LANGUAGE JAVA DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.Math.sinh'
SELECT sinh(doublecolumn) FROM mytable
SQL/JRT также позволяет коду Java динамически генерировать таблицы, используя объект java.sql.ResultSet
. Итоговые наборы данных возвращаются сконвертированными в форматы, соответствующие реляционным таблицам или представлениям, и могут быть использованы везде, где используются таблицы или представления.
Среди СУБД, с поддержкой хранимых процедур по стандарту SQL/JRT — HSQLDB, Oracle Database (процедуры выполняются в Aurora JVM, реализованной в версии 8i в 1999 году[2][3], позднее переименованную в Oracle JVM[4]), IBM DB2 (с 1998 года, но требуется внешняя JVM[5]).
Примечания
[править | править код]- ↑ ISO/IEC 9075-13:2002, часть 13
- ↑ Bulusu Lakshman. Oracle & Java Development. — Sams Publishing, 2002. — P. 6. — ISBN 978-0-672-32117-7.
- ↑ The Aurora JVM and Its Components Архивная копия от 6 февраля 2023 на Wayback Machine, Oracle Corp.
- ↑ Rick Greenwald. Oracle Essentials: Oracle Database 11g / Rick Greenwald, Robert Stackowiak, Jonathan Stern. — O'Reilly Media, Inc., 2008. — P. 323. — ISBN 978-0-596-51454-9.
- ↑ Don Chamberlin. A Complete Guide to DB2 Universal Database. — Morgan Kaufmann, 1998. — P. 565. — ISBN 978-1-55860-482-7.