13.2 ロード内容とロード時期

リソース・ファイルは、必ずloadjavaツールを使用してロードする必要があります。データベースの外で従来のコンパイラを使用して.classファイルを作成する場合、そのファイルは、loadjavaツールを使用してロードする必要があります。クラス・ファイルをロードする別の方法には、ソース・ファイルをロードし、Oracle Databaseで、結果のクラス・スキーマ・オブジェクトをコンパイルおよび管理する方法があります。Oracle Database 12cリリース1 (12.1)では、ほとんどのコードをデータベースの外でコンパイルおよびデバッグしてから、.classファイルをロードするのが最も能率的な方法です。特定のJavaクラスに対して、.classファイルまたは対応する.javaファイルのいずれかをロードできますが、両方はロードできません。

loadjavaツールは、ソース・ファイルとリソース・ファイル、またはクラス・ファイルとリソース・ファイルのいずれかを含むJavaアーカイブ(JAR)ファイルを受け入れます。loadjavaツールにJARファイルまたはZIPファイルを渡すと、デフォルトで、アーカイブをオープンし、そのメンバーを個別にロードします。

注意:

データベースにJARの内容をロードする場合、JAR自体を表すデータベース・オブジェクトを作成するオプションが用意されています。

前回のロード時から変更されていないファイルは、再ロードされません。このため、JARファイルのロードによるパフォーマンスの低下はほとんどありません。JARファイルのロードは、loadjavaツールの簡単で安全な使用方法です。

同一スキーマ内の2つのスキーマ・オブジェクトに同じクラスを定義することはできません。たとえば、a.javaでクラスxを定義し、xの定義をb.javaに移動する場合を考えてみます。a.javaがすでにロードされている場合、loadjavaツールはb.javaのロードを拒否します。かわりに、次のいずれかの方法を実行する必要があります。

  • a.javaを削除し、b.javaをロードして、次に新しいa.java(xは定義されていません)をロードします。

  • 新しいa.java(xは定義されていません)をロードし、次にb.javaをロードします。

関連トピック