13.7 dropjavaツール
dropjava
ツールは、loadjava
ツールと逆の処理を実行します。コマンドラインでのファイル名およびJARファイルまたはZIPファイルの内容をスキーマ・オブジェクト名に変換してから、スキーマ・オブジェクトとそれに対応するダイジェスト表の行を削除します。.java
、.class
、.sqlj
、.ser
、.zip
、.jar
およびリソース・ファイル名をコマンドラインに任意の順序で入力できます。
また、スキーマ・オブジェクト名を、直接dropjava
ツールに指定できます。.jar
、.zip
、.class
、.java
または.sqlj
で終わらないコマンドライン引数は、スキーマ・オブジェクト名とみなされます。複数のスキーマ・オブジェクトに該当するスキーマ・オブジェクト名を指定すると、該当するすべてのスキーマ・オブジェクトが削除されます。
クラスを削除すると、そのクラスに依存しているクラス群が無効になり、これは、上方に再帰的に連鎖します。ソースを削除すると、それから導出されたクラスが削除されます。
注意:
Javaスキーマ・オブジェクトは、最初にロードしたときと同じ方法で削除する必要があります。.sqlj
ソース・ファイルをロードしてサーバーで変換する場合は、同じソース・ファイルでdropjava
ツールを実行する必要があります。クライアントで変換してからクラスおよびリソースを直接ロードする場合は、同じクラスおよびリソースでdropjava
ツールを実行します。
dropjava
ツールは、コマンドラインから実行するか、またはDBMS_JAVA
クラスのdropjava
メソッドを使用して実行できます。使用しているJavaアプリケーション内からdropjava
ツールを実行するには、次のコマンドを使用します。
call dbms_java.dropjava('... options...');
オプションは、コマンドラインで指定する内容と同じです。各オプションは空白で区切ります。オプションをカンマで区切らないでください。ただし、-resolver
オプションは例外です。接続は常にカレント・セッションに対して確立されます。したがって、-user
オプションを使用して別のユーザー名を指定することはできません。
-resolver
の場合は、他のすべてのオプションを最初に指定してカンマ(,
)で区切り、次に-resolver
オプションとその定義を指定してください。-thin
、-oci
、-user
および-password
の各オプションは、loadjava
ツールのデータベース接続に関連しているため、指定しないでください。出力はstderr
に送信されます。serveroutput
をオンに設定し、必要に応じてdbms_java.set_output
をコールします。
この項の内容は次のとおりです。
13.7.1 dropjavaツールの構文
dropjava
ツールのコマンド構文は次のとおりです。
dropjava [options] {file.java | file.class | file.sqlj | file.jar | file.zip | resourcefile} ... -u | -user user/[password][@database] [-genmissingjar JARfile] [-jarasresource]
[-o | -oci | -oci8] [-optionfile file] [-optiontable table_name] [-S | -schema schema] [-stdout] [-s | -synonym] [-t | -thin]
[-v | -verbose] [-list] [-listfile]
13.7.2 dropjavaツールの引数の概要
表13-3は、dropjava
ツールの引数の一覧です。
表13-3 dropjavaの引数の概要
引数 | 説明 |
---|---|
|
ユーザー名、パスワードおよびデータベース接続文字列(オプション)を指定します。ファイルはこのデータベース・インスタンスから削除されます。 |
|
|
|
このオプションのオペランドを処理対象のファイルとして扱います。 |
|
以前にリソースとしてロードされたJARファイル全体を削除します。 |
|
|
|
使用方法は |
|
使用方法は |
|
スキーマ・オブジェクトを削除するスキーマを指定します。このオプションを指定しないと、ログイン・スキーマが使用されます。他のユーザーのスキーマからスキーマ・オブジェクトを削除するには、 |
|
|
|
|
|
|
|
|
|
コマンドラインにリストされたクラス、Javaソースまたはリソースがクライアント・マシンまたはサーバー・マシン上に存在しない場合、これらを削除します。 |
|
ファイルを読み取り、そのファイルにリストされたクラス、Javaソースまたはリソースがクライアント・マシンまたはサーバー・マシン上に存在しない場合はこれらを削除します。ファイルには、行ごとに完全なクラス名、Javaソース名またはリソース名の内部表現が含まれます。 |
13.7.3 dropjavaツールの引数の詳細
この項では、dropjava
ツールの一部の複雑な引数について説明します。
ファイル名
dropjava
ツールは、ほとんどのファイル名をloadjava
ツールと同じ方法で解析します。
-
.class
ファイルファイル内のクラス名を検索して、対応するスキーマ・オブジェクトを削除します。
-
.java
および.sqlj
ファイルファイル内の最初のクラス名を検索して、対応するスキーマ・オブジェクトを削除します。
-
.jar
および.zip
ファイルアーカイブ・ファイル名を、コマンドラインに入力された場合と同様に処理します。
dropjava
ツールは、これ以外の拡張子が付いているファイル名、または拡張子が付いていないファイル名をスキーマ・オブジェクト名として解析し、その名前に一致するすべてのソース・オブジェクト、クラス・オブジェクトおよびリソース・オブジェクトを削除します。
dropjava
ツールは、スキーマ・オブジェクトに一致しないファイル名を検出すると、メッセージを表示し、残りのファイル名を処理します。
user
{-user | -u} user/password[@database]
@
database
の使用可能な形式は、-oci
を指定するか、または-thin
を指定するかによって異なります。
-
-oci:@
database
はオプションです。指定しない場合、dropjava
ツールはユーザーのデフォルト・データベースを使用します。指定した場合、database
はTNS名またはOracle Net Servicesの名前/値リストのいずれかになります。 -
-thin:@
database
は必須です。形式はhost
:
lport
:
SID
です。説明:
-
host
は、データベースが動作しているコンピュータの名前です。 -
lport
は、Oracle Net Services接続のリスニング用に構成されたリスナー・ポートです。デフォルト・インストールでは5521
です。 -
SID
は、データベース・インスタンスの識別子です。デフォルト・インストールではORCL
です。
-
次に、dropjava
ツールのコマンド例を示します。
-
ServerObjects.jar
からロードしたデフォルト・データベース内のTEST
スキーマにある、すべてのスキーマ・オブジェクトを削除する場合dropjava -u HR -schema TEST ServerObjects.jar Password: password
-
JDBC Thinドライバで接続してから、クラス・ファイルとリソース・ファイルをユーザーのスキーマから削除する場合
dropjava -thin -u HR@dbhost:5521:orcl alpha.class beta.props Password: password
リスト・ベースの削除
以前のバージョンのdropjava
ツールでは、クライアント側またはサーバー側のユーティリティを実行するマシンにクラス、JAR、ソースおよびリソースが存在する必要がありました。現行バージョンのdropjava
には、クラスのリストに基づき、クライアント・マシンまたはサーバー・マシンに存在しない場合があるクラス、リソースまたはソースを削除できるオプションが用意されています。このリストは、コマンドライン上またはテキスト・ファイル内にある場合があります。次に例を示します。
dropjava –list –u HR –v this.is.my.class this.is.your.class
Password: password
このコマンドは、コマンドラインにリストされたクラスthis.is.my.class
およびthis.is.your.class
がクライアント・マシンまたはサーバー・マシン上に存在しない場合、これらを削除します。
dropjava –listfile my.list –u HR –s –v
Password: password
このコマンドは、my.list
にリストされたクラスのリストに基づき、クラス、リソースまたはソースおよびそのシノニムを削除し、冗長形式で表示します。
注意:
'-install'
フラグは、変更不可のシステムが所有するスキーマ・オブジェクトのロードおよび削除を無視します。
これらのスキーマ・オブジェクトはCREATE JAVA COMMAND
で指定されたランタイム・クラスおよびリソースです。
13.7.4 dropjavaツールを使用したリソースの削除について
サーバーに直接ロードされたリソースを削除する場合は注意が必要です。-ser2class
オプションを使用せずにクライアントで変換した場合、このリソースにはプロファイルが含まれています。ソースやクラス・スキーマ・オブジェクト、またはサーバー側SQLJトランスレータで生成されたリソース・スキーマ・オブジェクトを削除する場合は、該当する.sqlj
ソース・ファイルのパッケージ仕様に従ってスキーマ・オブジェクトが検索されます。ただし、クライアントで生成されてサーバーに直接ロードされたリソースのスキーマ・オブジェクトの完全修飾名は、.jar
ファイルのパス情報またはロード時にコマンドラインに指定したパス情報によって異なります。.jar
ファイルを使用してリソースをロードし、同じ.jar
ファイルを使用してリソースを削除する場合は問題ありません。ただし、コマンドラインを使用してリソースをロードする場合は、dropjava
ツールを実行してリソースを削除するときに同じパス情報を指定するように注意してください。