SQL/JRT (SQL Routines and Types for the Java Programming Language) — расширение языка SQL, принятое в стандарте SQL:1999ISO/IEC 9075-13:2002, часть 13. Обеспечивает возможность вызова из 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 годуThe Aurora JVM and Its Components , Oracle Corp., позднее переименованную в Oracle JVM), IBM DB2 (с 1998 года, но требуется внешняя JVM).

Примечания

Ссылки SQL:2003 SQL/JRT draft SQL:2003 SQL Standard User Defined Types and Routines

Категория:SQL