PL/SQL変換ユーティリティは、対話的実行とバッチ実行の2通りの方法で実行で
きます。対話的実行は、モジュールを各Builder で開く際に実行され、バッチ実行 はコンパイラを使用したバッチコンパイル時に実行されます。
いずれの方法で実行した場合も、.plg拡張子のついたログ・ファイルが生成されま す。このログ・ファイルには、移行中にモジュールに対して行われたすべての変 更が記述され、また手動で変更が必要な箇所も一覧表示されます。
変換ユーティリティによるモジュールの変換後保存すると、そのモジュールに対 し再度変換ユーティリティを実行することはできません。これにより、変換ユー ティリティでの変換後に手動でおこなった変更を、変換ユーティリティにより上 書きされるのを防止できます。
6.3.1 対話的実行
モジュールを対話的に変換するには、単にR6iのBuiderでモジュールを開くだ けです。Forms、Reports、Graphics、Procedure Builderの各コンポーネントで行 います。
開いたモジュールに、PL/SQL 8に準拠するために変更を要するPL/SQLコード がある場合には、下図のような画面が表示されます。
表 6.3.1 PL/SQL変換ユーティリティ 画面
この画面では、コードを変換するか、無視するかを選択出来ます。ここで無視
してPL/SQLコードを変換しない場合、使用しているモジュールはコンパイル
が通らず、実行モジュールが生成できません。この場合は、変換ユーティリテ ィ終了後、手動でコードを変更する必要があります。
各ボタンは次のように使い分けます。
ボタン 動作
説明 現在表示されているコードで何を変換すべきなのか説 明を表示
変換 現在表示されているコードを変換する場合にクリック すべて変換 すべての変換項目を自動で変換する場合にクリック。以
降の変換項目は確認メッセージが表示されずに変換さ れる
無視 現在表示されているコードを変換せず、次の項目へ進む 場合にクリック
すべて無視 すべての項目を変換せずに変換ユーティリティを終了 する場合にクリック
オプション 次文参照 ヘルプ ヘルプを表示
す。このウィンドウでは、変換すべきコードの変換方法を指定します。
表 6.3.2 変換ユーティリティ オプション設定
これらの項目と、既に説明したPL/SQLの変更点との対応は、次の通りです。
オプション項目 説明箇所
・CHARをVARCHAR2へ 6.2.1 文字変数
・文字列宣言に長さの制約がない 6.2.1 文字変数
・デフォルト値付き OUT 及び IN OUTパラメータ
6.2.2 デフォルト値付きOUTおよびIN OUTパラメータ
・ファンクションに戻り値がない 6.2.3 関数の戻り値
・無効なビルトイン 6.2.4 廃止されたTO_PLS_INTEGER
・文字列長がゼロのため LENGTH ファンクションがNULLを返した
6.2.5 LENGTH関数の戻り値
・オーバロードされたNULLのサブ プログラムが解決できない
6.2.6 サブプログラムのオーバーロー
ド
・ファンクションに RETURN がな い
6.2.7 関数のRETURN
また、チェックボックスは次の意味を持っています。
チェックボックス 意味
変換 変換時に確認のメッセージを表示せずに変換を行う 無視 手動でコードを変更する
確認 変換すべきコードを検出した際に、変換を行うかどう かの確認画面を表示する(デフォルト)
変換方法を指定する場合は、各オプション項目のチェックボックスにチェック し、OKボタンをクリックします。
変換ユーティリティによる変換が終了すると、変換ユーティリティによって行 われた変換を一覧表示する変換サマリーウィンドウが表示されます。
下図のように「変換済み」と記述された項目は、変換ユーティリティによって 自動で変換が行われています。
表 6.3.3 変換サマリー
このウィンドウには、コンパイル・エラーの生じた箇所も同時に一覧表示され ます。エラーに該当するコードを確認する場合は、リスト上で項目をダブル・
クリックするか、または項目を選択し、右クリックから編 集を 選 択し て
PL/SQLエディタを表示し、修正を行って下さい。
6.3.2 バッチ実行
Forms、Reportsそれぞれのコンパイラを使用して、PL/SQLの変換をバッチ実
行します。Graphicsにはコンパイラが存在しないため、この方法は使用できま せん。
バッチ実行を行う場合は、6.2 変換ユーティリティで変換可能なPL/SQL変 更点で説明したすべてが自動的に行われます。
以下のコマンドを実行します。
>ifcmp60 module=<モ ジ ュ ー ル 名> userid=<デ ー タ ベ ー ス 情 報>
upgrade_plsql=yes batch=yes
例:
>ifcmp60 module=old.fmb userid=scott/tiger@orcl upgrade_plsql=yes batch=yes
また、コマンド・ラインからReportsモジュールをバッチ・モードで変換する には、以下のコマンドを実行します。
>rwcon60 source=<モ ジ ュ ー ル 名> userid=<デ ー タ ベ ー ス 情 報>
upgrade_plsql=yes batch=yes
例:
>rwcon60 source=old.rdf userid=scott/tiger@orcl upgrade_plsql=yes batch=yes