6. AND 7. OR
4.3 SQL コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト コマンドのアルファベット順のリスト
4.3.13 CREATE JAVA
構文 構文構文 構文 図図図
図 4-20 CREATE JAVAコマンドコマンドコマンドコマンド
BNF表記法表記法表記法表記法
CREATE [OR REPLACE] [AND { RESOLVE | COMPILE } NOFORCE ] JAVA { { SOURCE | RESOURCE } NAMED [schema .] primary_name
| CLASS [SCHEMA schema .]
}
[invoker_rights_clause]
[RESOLVER
"(" "(" match_string [,] { schema_name | - }")"
["(" match_string [,] { schema_name | - }")"]...
")"
]
{ USING BFILE "(" directory_path , server_file_name ")"
| AS source_text }
; 用途 用途用途 用途
Javaソース、クラスまたはリソースを含むスキーマ・オブジェクトを作成します。
注意 注意注意
注意: Javaストアド・プロシージャおよびJDBCをはじめとするJava概 念の詳細は、『Oracle9i Lite Java 開発者ガイド』を参照してください。
SQLコマンドのアルファベット順のリスト
前提条件前提条件前提条件 前提条件
ユーザー自身のスキーマ内で、Javaソース、クラスまたはリソースを含んだスキーマ・オブ ジェクトを作成または置換するには、データベースにSYSTEMとして接続するか、
DBA/DDL権限が必要です。
表表表
表 4-13 CREATE JAVAコマンドで使用される引数コマンドで使用される引数コマンドで使用される引数コマンドで使用される引数 引数
引数引数
引数 説明説明説明説明
OR REPLACE Javaクラス、ソースまたはリソースを含んだスキーマ・オブジェ
クトがすでに存在する場合、再作成します。この句は、すでに付 与されているオブジェクト権限を変更(削除、再作成または再付 与)せずに、既存のオブジェクトの定義を変更するために使用し ます。
Javaスキーマ・オブジェクトを再定義して、RESOLVEまたは COMPILEを指定すると、Oracle Liteは、これらのパラメータを 認識はしますが、無視します。
再定義される関数に対する権限を前もって付与されているユー ザーは、引き続きその関数にアクセスできます。ユーザーに再度 権限を付与する必要はありません。
RESOLVE | COMPILE Oracle Liteは、このパラメータを認識しますが、無視します。
Oracleでは、この文が成功したときに作成されるJavaスキーマ・
オブジェクトをデータベースで解決するように指定します。
■ クラスに適用されると、別のクラス・スキーマ・オブジェク トに対する参照名の解決が行われます。
■ ソースに適用されると、ソースのコンパイルが行われます。
制限事項: Javaリソースには、この句を指定できません。
NOFORCE Oracle Liteは、このパラメータを認識しますが、無視します。
Oracleでは、RESOLVE OR COMPILEを指定して解決またはコン パイルが失敗した場合、NO FORCEはこのCREATEコマンドの 結果をロールバックします。このオプションを指定していないと、
解決またはコンパイルが失敗した場合、Oracleは、何もアクショ ンを実行しません(すなわち、作成されたスキーマ・オブジェク トが残ります)。
CLASS Javaクラス・ファイルをロードします。
RESOURCE Javaリソース・ファイルをロードします。
SQLコマンドのアルファベット順のリスト
NAMED Oracle Liteは、このパラメータを認識しますが、無視します。
Oracleでは、これは、Javaソースまたはリソースに必須です。
■ Javaソースの場合、この句は、ソース・コードが保持される スキーマ・オブジェクトの名前を指定します。CREATE JAVA SOURCE文が成功した場合、ソースで定義された各 Javaクラスを保持するためのスキーマ・オブジェクトも作成 されます。
■ Javaリソースの場合、この句は、Javaリソースを保持するス キーマ・オブジェクトの名前を指定します。
schemaを指定しないと、Oracleによりユーザー自身のスキーマ 内にオブジェクトが作成されます。
制限事項:
■ JavaクラスにNAMEDは指定できません。
■ primary_nameは、データベース・リンクを含むことはできま
せん。
SCHEMA schema Oracle Liteは、このパラメータを認識しますが、無視します。
Oracleでは、Javaクラスにのみ適用されます。オプション指定の この句は、Javaファイルを含むオブジェクトが常駐するスキーマ を指定します。SCHEMAを指定せず、またNAMED(前述)を 指定しないと、Oracleは、ユーザー自身のスキーマ内にオブジェ クトを作成します。
invoker_rights_clause Oracleとの互換性のために、Oracle Liteは、invoker_rights_clause を認識しますが、施行はしません。
表 表表
表 4-13 CREATE JAVAコマンドで使用される引数コマンドで使用される引数(続き)コマンドで使用される引数コマンドで使用される引数(続き)(続き)(続き)
引数 引数引数
引数 説明説明説明説明
SQLコマンドのアルファベット順のリスト
使用上の注意 使用上の注意使用上の注意 使用上の注意
Oracle Liteは、Javaクラスをデータベースにロードするとき、依存クラスはロードしませ
ん。一般に、Javaクラスをデータベースにロードするには、loadjavaユーティリティを使 用してください。loadjavaユーティリティの詳細は、『Oracle9i Lite Java 開発者ガイド』
を参照してください。
Javaクラスの例クラスの例クラスの例クラスの例
次の文は、スキーマ・オブジェクトを作成し、指定されたJavaクラスを新たに作成された スキーマ・オブジェクトにロードします。
CREATE JAVA CLASS USING BFILE (bfile_dir, 'Agent.class');
RESOLVER Oracle Liteは、このパラメータを認識しますが、無視します。
Oracleでは、完全修飾Java名のJavaスキーマ・オブジェクトへ のマッピングを指定します。
■ match_stringは、完全修飾Java名、そのようなJava名に一致 するワイルド・カード、または任意の名前に一致するワイル ド・カードのいずれかです。
■ schema_nameは、対応するJavaスキーマ・オブジェクトを検
索するためのスキーマを示します。
■ ダッシュ(-)は、schema_nameの代替として、match_string が有効なJava名に一致したとき、Oracleがスキーマを未解 決のままにできることを示します。解決は成功しますが、ク ラスは、名前をランタイムに使用できません。
このマッピングは、後の解決(暗黙的、または
ALTER...RESOLVE文による明示的解決)で使用するために、作 成されたスキーマ・オブジェクトの定義とともにこのコマンド内 に格納されます。
AS source_text Javaソース・プログラムのテキスト。
USING BFILE クラス・ファイルの形式を識別します。BFILEは、CREATE
JAVA CLASSまたはCREATE JAVA RESOURCEによって、バイ ナリ・ファイルと解釈されます。
表表表
表 4-13 CREATE JAVAコマンドで使用される引数コマンドで使用される引数(続き)コマンドで使用される引数コマンドで使用される引数(続き)(続き)(続き)
引数 引数引数
引数 説明説明説明説明
SQLコマンドのアルファベット順のリスト
Javaソースの例ソースの例ソースの例ソースの例
次の文は、Javaソース・スキーマ・オブジェクトを作成します。
CREATE OR REPLACE JAVA SOURCE AS /* This is a class Test */
import java.math.*; /* */
public class Test {
public static BigDecimal myfunc(BigDecimal a, BigDecimal b) { return a.add(b); }
public static Strin myfunc2(String a, String b) { return (a+b); }
};
Javaリソースの例リソースの例リソースの例リソースの例
次の文は、バイナリ・ファイルから、APPTEXTという名前のJavaリソース・スキーマ・オ ブジェクトを作成します。
CREATE JAVA RESOURCE NAMED "appText"
USING BFILE ('C:¥TEMP', 'textBundle.dat');
関連項目 関連項目関連項目 関連項目 DROP JAVA
注意 注意注意
注意: キーワード「public class」を、最初のpublic class文の前のコメン トに使用しないでください。
注意注意注意
注意: Java文を埋め込む場合、SQL*Plus文の文末にセミコロン文字「;」 を使用しないでください。セミコロンを行末に置く必要がある場合、「/*
*/」を使用して空白のコメント行を追加する必要があります。通常のコメ ント記号「//」は、この状況では機能しません。行末に /* */ を置くと、
SQL*PlusはセミコロンをSQL文の終わりと解釈しません。
SQLコマンドのアルファベット順のリスト