スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
この項では,外部Javaルーチンに関連する次の項目について説明します。
なお,HP-UX,Solaris,及びAIXの場合は,POSIXライブラリ版のHiRDBをセットアップ(pdsetupコマンドを実行)していないとき,又はPOSIXライブラリ版のHiRDBから非POSIXライブラリ版のHiRDBに再セットアップしたときは,外部Javaルーチンを使用できません。pdsetupコマンドについては,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
外部Javaルーチン名は,CREATE PROCEDURE及びCREATE FUNCTIONで指定できます。外部Java手続き及び外部Java関数を,外部ルーチンとして定義するためです。
外部Javaルーチン名::='JARファイル名:Javaメソッド名〔Javaシグネチャ〕' Javaメソッド名::=Javaクラス名.メソッド識別子 Javaクラス名::=〔パッケージ名.〕クラス識別子 Javaシグネチャ::=(〔Javaパラメタ〕)〔returns 型名〕 Javaパラメタ::=型名〔,型名〕… |
| 省略した場合の記述形式 | HiRDBが解釈するパッケージ名を含む型名 |
|---|---|
| Integer | java.lang.Integer |
| Short | java.lang.Short |
| BigDecimal | java.math.BigDecimal |
| Double | java.lang.Double |
| Float | java.lang.Float |
| String | java.lang.String |
| Date | java.sql.Date |
| Time | java.sql.Time |
| Timestamp | java.sql.Timestamp |
| ResultSet | java.sql.ResultSet |
ここでは,Java言語で扱われるデータ型と,HiRDBで扱うデータ型のマッピングについて説明します。
外部ルーチン指定のJavaシグネチャを省略した場合の暗黙的マッピングを次の表に示します。
表1-28 外部ルーチン指定のJavaシグネチャを省略した場合の暗黙的マッピング
| HiRDBのデータ型 | Javaデータ型(NULL値可) |
|---|---|
| INT〔EGER〕 | java.lang.Integer |
| SMALLINT | java.lang.Short |
| 〔LARGE〕 DEC〔IMAL〕 | java.math.BigDecimal |
| FLOAT, DOUBLE PRECISION |
java.lang.Double |
| SMALLFLT, REAL |
java.lang.Float |
| CHAR〔ACTER〕 | java.lang.String |
| VARCHAR(n), CHAR〔ACTER〕 VARYING |
|
| NCHAR, NATIONAL CHAR〔ACTER〕 |
|
| NVARCHAR, NATIONAL CHAR〔ACTER〕, NCHAR VARYING |
|
| MCHAR | |
| MVARCHAR | |
| DATE | java.sql.Date |
| TIME | java.sql.Time |
| TIMESTAMP | java.sql.Timestamp |
| INTERVAL YEAR TO DAY | java.math.BigDecimal |
| INTERVAL HOUR TO SECOND | |
| BLOB, BINARY LARGE OBJECT |
byte[] |
| BINARY |
外部ルーチン指定のJavaシグネチャで指定できるJavaデータ型とHiRDBのデータ型のマッピングを次の表に示します。
表1-29 外部ルーチン指定のJavaシグネチャで指定できるJavaデータ型とHiRDBのデータ型のマッピング
| HiRDBのデータ型 | Javaデータ型 (NULL値可) |
Javaデータ型 (NULL値不可)※1 |
|---|---|---|
| INT〔EGER〕 | java.lang.Integer | int |
| SMALLINT | java.lang.Short | short |
| 〔LARGE〕 DEC〔IMAL〕 | java.math.BigDecimal | − |
| FLOAT,又は DOUBLE PRECISION |
java.lang.Double | double |
| SMALLFLT,又は REAL |
java.lang.Float | float |
| CHAR〔ACTER〕 | java.lang.String,又は byte[]※2 |
−※3 |
| VARCHAR(n),又は CHAR〔ACTER〕 VARYING |
||
| NCHAR,又は NATIONAL CHAR〔ACTER〕 |
||
| NVARCHAR, NATIONAL CHAR〔ACTER〕,又は NCHAR VARYING |
||
| MCHAR | ||
| MVARCHAR | ||
| DATE | java.sql.Date | − |
| TIME | java.sql.Time | |
| TIMESTAMP | java.sql.Timestamp | |
| INTERVAL YEAR TO DAY | java.math.BigDecimal | |
| INTERVAL HOUR TO SECOND | ||
| BLOB,又は BINARY LARGE OBJECT |
byte[] | |
| BINARY | ||
| 抽象データ型 | − |
非POSIXライブラリ版のHiRDBでのSQL実行可否を次の表に示します。非POSIXライブラリ版のHiRDBとは,HP-UX版,Solaris版,及びAIX版の場合に,pdsetupコマンドでPOSIXライブラリ版のロードモジュールをセットアップしていないHiRDBのことをいいます。
表1-30 非POSIXライブラリ版のHiRDBでのSQL実行可否
| 分類 | SQL文 | 実行可否 | 実行できない条件 |
|---|---|---|---|
| 定義系SQL | ALTER PROCEDURE | △ | 外部Java手続きの指定 |
| ALTER ROUTINE | △ | 外部Java手続き及び外部Java関数の指定 | |
| CREATE FUNCTION | △ | 外部Javaルーチンの使用 | |
| CREATE PROCEDURE | △ | 外部Javaルーチンの使用 | |
| CREATE TYPE | △ | 外部Javaルーチンの使用 | |
| CREATE VIEW | △ | 外部Java関数の指定 | |
| DROP FUNCTION | ○ | − | |
| DROP PROCEDURE | ○ | − | |
| DROP SCHEMA | ○ | − | |
| 操作系SQL | ASSIGN LIST文 | ○ | − |
| CALL文 | △ |
|
|
| DELETE文 | ○ | − | |
| DROP LIST文 | ○ | − | |
| FREE LOCATOR文 | ○ | − | |
| INSERT文 | △ | 外部Java関数の使用 | |
| PURGE TABLE文 | ○ | − | |
| 1行SELECT文 | △ | 外部Java関数の使用 | |
| 動的SELECT文 | △ | 外部Java関数の使用 | |
| UPDATE文 | △ | 外部Java関数の使用 | |
| 代入文 | △ | 外部Java関数の使用 | |
| 制御系SQL | LOCK文 | ○ | − |
| 埋込みSQL言語 | INSTALL JAR | × | − |
| REPLACE JAR | × | − | |
| REMOVE JAR | ○ | − | |
| INSTALL CLIB | ○ | − | |
| REPLACE CLIB | ○ | − | |
| REMOVE CLIB | ○ | − | |
| その他 | 関数呼出し | △ |
|
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.