SQL/JRT(SQL Routines and Types for the Java Programming Language )は、 ISO /IEC 9075-13:2002(SQL:1999のパート13)として最初に公開されたSQL標準の拡張機能です。SQL/JRTは、SQLアプリケーション内から静的Javaメソッドをルーチンとして呼び出す機能(一般に「Javaストアドプロシージャ」と呼ばれる)を規定しています。また、SQL/JRTは、JavaクラスをSQL構造のユーザー定義型として使用できる機能も要求しています。この拡張機能の2つの部分は、以前のANSI SQLJパート1および2標準に由来します(SQLをJavaに埋め込むことを定義したSQLJパート0(後にISOによってSQL/OLBとして標準化された)とは混同しないでください)。
SQL/JRTでは、次のようにSQLコードからJava関数を呼び出すことができます。[ 1 ]
CREATE FUNCTION sinh ( v DOUBLE ) RETURNS DOUBLE LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:java.lang.Math.sinh'SELECT sinh ( doublecolumn ) FROM mytableSQL/JRTでは、Javaコードがjava.sql.ResultSetオブジェクトを使用してテーブルを動的に生成することもできます。返される結果セットはSQLテーブルに変換され、テーブルやビューが使用できる場所ならどこでも使用できます。[ 1 ]
SQL/JRT ストアド プロシージャはHSQLDBに実装されています。[ 1 ] Java ストアド プロシージャは、 1999 年にOracle Databaseバージョン 8iで導入されたOracle のJServer (または Aurora JVM)でも実装されています。 [ 2 ] [ 3 ]現在はOracle JVMと呼ばれています。[ 4 ] IBM DB2も、1998 年頃から Java ストアド プロシージャをサポートしていましたが、当時は外部 JVM を使用していました。[ 5 ]