日本語PDF

105 PLW-05000からPLW-07207

PLW-05000: 仕様部と本体間のNOCOPY条件が一致していません

原因: 指定のパラメータの宣言に、サブプログラムの仕様部ではNOCOPYヒントを使用していて本体で使用されていないか、または本体ではNOCOPYヒントを使用していて仕様部では使用されていません。

処置: 仕様部と本体でNOCOPYの使用が一致していることを確認してください。この不一致を訂正しないと、プログラムは本体での宣言を無視して仕様部での宣言に従います。

PLW-05001: string'(行string)の以前の使用方法が、この使用方法と競合します。

原因: 変数、定数またはラベルの以前の宣言を検索しているときに、コンパイラが同じ有効範囲で同じ名前を持つ別の宣言を見つけました。または、パッケージの仕様部と本体で、サブプログラムのヘッダーが一致しません。

処置: 変数名、定数名またはラベル名の綴りを確認してください。また、同じ有効範囲の中で宣言されているすべてのパラメータおよび例外の名前を確認してください。次に、重複する名前を持つオブジェクトを削除するか名前を変更してください。または、両者が一致するように、パッケージ仕様部または本体でパッケージされたサブプログラムのヘッダーを変更してください。

PLW-05003: INとNOCOPYで同一の実パラメータ(stringstring)を使用すると、他の問題が発生する可能性があります

原因: 指定のパラメータの宣言に、サブプログラムの仕様部ではNOCOPYヒントを使用していて本体で使用されていないか、または本体ではNOCOPYヒントを使用していて仕様部では使用されていません。

処置: 仕様部と本体でNOCOPYの使用が一致していることを確認してください。この不一致を訂正しないと、プログラムは本体での宣言を無視して仕様部での宣言に従います。

PLW-05004: 識別子stringは、STANDARDでも宣言されているか、またはSQLビルトインです

原因: 指定された識別子は、o) パッケージSTANDARDでも宣言されているか、o) SQL組込み関数であるか、またはo) 疑似列です。この状況では、SQL文のローカル宣言でSTANDARD/組込み宣言が選択されるため、名前の解決に問題が発生する可能性があります。ただし、ローカル宣言はSQL有効範囲外のSTANDARD/組込み宣言で選択されます。(PL/SQLの名前解決については、ドキュメントを参照してください。)

処置: o) 指定した識別子の名前を変更するか、o) 識別子への参照を有効範囲名で修飾するか、o) SQL有効範囲内で識別子を使用する場合は、意図した解決が発生することを確認してください。

PLW-05005: サブプログラムstringは、行stringに値なしで戻ります

原因: ファンクションは戻り値なしで終了しました。すべてのPL/SQLファンクションには値付きのRETURN文が必要です。

処置: ファンクションのソース・コードを調べ、あらゆるRETURN文が値を戻すこと、およびファンクションがEND文の実行によって終了しないことを確認してください。ファンクション・コールがインライン化されている場合、およびコールされたファンクションが正常に終了しなかった場合には、ファンクションのコール場所にこのメッセージが表示される場合があります。

PLW-05006: シャドウ・タイプ生成の結果の警告: string

原因: 表関数のコンパイルにより、内部生成のタイプが作成されます。問題が発生したのはこのようなタイプの作成中で、このタイプの作成を妨げるほどには深刻ではありませんが、表関数の使用に影響を与える可能性があります。詳細は、付随するエラー・メッセージを参照してください。

処置: 付随するエラー・メッセージでレポートされた問題を修正してください。

PLW-05007: プラグマINLINEへの最初のパラメータは、識別子である必要があります

原因: プラグマINLINEへの最初のパラメータは、プロシージャまたはファンクションを示す識別子である必要があります。

処置: プロシージャ名またはファンクション名を使用してください。

PLW-05008: プラグマstringの引数の数が正しくありません

原因: 示されたプラグマ(コンパイラ・ディレクティブ)に渡された引数(実際のパラメータ)の数が誤っています。必要な引数が引数リストに入っていないか、またはプラグマの構文が誤っています(たとえば、2つのパラメータ間のカンマ(,)が欠落しています)。

処置: 必要な引数を指定するか、構文エラーを修正してください。

PLW-05009: プラグマINLINEは宣言リストにありません

原因: プラグマINLINEは次に続く文にのみ適用されるため、宣言の直前に記述できません。

処置: プラグマを削除してください。

PLW-05010: プロシージャ'string'のプラグマINLINEが重複しています

原因: プラグマINLINEは同じ文の同じプロシージャに2度適用されました。プロシージャは、重複しているすべてで制御値'YES'が指定されている場合のみインライン化されます。

処置: 重複するプラグマを削除してください。

PLW-05011: プロシージャ'string'のプラグマINLINEはコールには適用されません

原因: プラグマINLINEが指定されましたが、示されているプロシージャのコールが次の文にありません。

処置: 不要なプラグマを削除してください。

PLW-05012: プロシージャ'string'のプラグマINLINEを適用できませんでした

原因: プラグマINLINE(name、'yes')が使用されましたが、指定されたプロシージャをインライン化できませんでした。

処置: インラインをブロックしている要因を除去します。考えられる問題点については、ドキュメントを参照してください。

PLW-05013: プラグマINLINE 'string'への2番目のパラメータは'YES'または'NO'ではありません

原因: プラグマINLINEの2番目のパラメータは、プロシージャ・コールをインライン化できるかどうかを制御します。有効な値は'YES'のみで、コンパイラはコールのインライン化を試みます。'NO'を指定すると、コンパイラはコールをインライン化しません。

処置: 'YES'または'NO'を適切に使用してください。

PLW-05014: Pragma stringはここでは指定できません

原因: プラグマが不適切なコンテキストで宣言されました。

処置: 位置の異なるプラグマを削除するか、または位置を変更してください。ドキュメントでこのプラグマに対して適正なコンテキストを確認してください。

PLW-05015: 実装上の制約 - デバッグ・レコードが多すぎます

原因: プログラムが大きすぎて、デバッグ・シンボル表のサイズのコンパイラ制限をオーバーフローしました。モジュールは一部のデバッグ情報を付加してコンパイルされました。

処置: PLSQL_DEBUG=FALSEを指定してモジュールをコンパイルするか、そのモジュールを複数のモジュールに分割してください。

PLW-05016: INTO句はここでは指定できません

原因: INTO句がカーソル宣言で正しく指定されていません。FETCH文で指定する必要があります。

処置: 間違っている句の位置を変更してください。

PLW-05017: 式の接頭辞は無視されます

原因: 明示的なSELFとピリオド付きの名前を使用して、汎用化された呼出しが型メソッドのコールに使用されたので、ピリオド付きの名前の接頭辞が無視されます。

処置: ピリオド付きの名前を使用して、このコンテキストの型メソッドを呼び出さないでください。

PLW-05018: ユニットstringはオプションのAUTHID句を省略しました。デフォルト値のDEFINERが使用されました

原因: AUTHID句が欠落しています。このユニットでは、AUTHID句を指定できます。この句が欠落している場合には、デフォルトでDEFINERの権限が使用されます。AUTHID句を常に明示的に使用することをお薦めします。

処置: ユニットにAUTHID句を明示的に記述してください。

PLW-05019: キーワードstringの近くの言語要素は、バージョンstring以降では推奨されていません

原因: 非推奨の言語要素が使用されました。メッセージ・テキストに指定されたバージョン番号以上のPL/SQLバージョンでは、この言語要素は非推奨になっています。

処置: 非推奨の言語要素を削除するか、または修正してください。PL/SQLの非推奨の言語要素は、非推奨になった1つ後のバージョンで廃止されます。廃止された言語要素はサポートされなくなり、使用するとエラーが発生するようになります。

PLW-05020: パラメータ名は識別子にする必要があります

原因: 名前付き表記法を使用するコールで、パラメータ名として文字列リテラルが使用されました。

処置: パラメータ名に識別子を使用するようにコードを変更してください。

PLW-05021: 例外stringにはプラグマEXCEPTION_INITがありません

原因: ユーザー定義の例外が宣言されましたが、プラグマEXCEPTION_INITによって例外番号が指定されませんでした。すべてのユーザー定義の例外を明示的に番号付けすることをお薦めします。

処置: プラグマEXCEPTION_INITを追加して、例外に番号を付けてください。

PLW-05022: 引数'string'は比較可能ではありません

原因: IN、BETWEENまたはMEMBER OFの引数が比較可能な型ではありませんでした。または、引数がオブジェクト型の場合、MAPメソッドまたはORDERメソッドがこの型に指定されませんでした。

処置: 適切な引数を使用するか、MAPメソッドまたはORDERメソッドを指定してください。

PLW-05023: SYSAUXがオフラインのため、PL/Scopeが無効です。

原因: SYSAUX表領域がコンパイル時にオフラインであったため、PL/Scopeが現行のPL/SQLユニットのコンパイルに対して無効でした。PL/ScopeはSYSAUX表領域に識別されたメタデータを格納するため、SYSAUXがオフラインのときには機能できません。

処置: SYSAUXがオンラインであることを確認し、PL/SQLユニットを再コンパイルしてください。

PLW-05024: BULK COLLECT句をカーソル宣言で使用しないでください

原因: A BULK COLLECT句がカーソル宣言で指定されていました。

処置: BULK COLLECT句をカーソル宣言から削除し、必要に応じてFETCH文に移動してください。

PLW-05025: この同じサブプログラムの宣言から仮パラメータstringを参照しないでください。

原因: 仮パラメータのデフォルト式は、同じ副プログラム宣言の別の仮パラメータを参照しました。これは、formal%CHARSET式でのみ許可されています。

処置: 参照を削除してください。

PLW-05999: 実装制限(おそらく一時)string

PLW-06002: 使用不可コード

原因: 静的プログラム解析では、実行中に指定された行のコードに決して到達しないことが判明しました。これは、コンパイル時に式の評価が原因で発生している可能性があります。

処置: プログラム・ロジック内で可能な誤りの有無を検査してください。大部分のコードが意図的に到達不能にしてあり、警告メッセージが役立たない場合は、警告を使用禁止にします。

PLW-06003: 不明なディレクティブ'string'

原因: 不明なディレクティブが使用されています。ディレクティブが事前定義およびユーザー定義されていません。

処置: 事前定義されたディレクティブを使用するか、またはディレクティブを定義してください。

PLW-06004: プロシージャ'string'のコールのインラインがリクエストされました

原因: 指定されたプロシージャを参照するプラグマINLINE(, 'YES')が指定されています。可能な場合、コンパイラはこのコールをインライン化します。

処置: 該当なし

PLW-06005: プロシージャ'string'のコールのインラインが実行されました

原因: プロシージャのコールがインライン化されました。

処置: 該当なし

PLW-06006: コールされていないプロシージャ"string"が削除されます

原因: 静的プログラム分析により、プロシージャはコールされないか、または実行されないことが判別されました。このため、コンパイル時の時間および実行時の領域を節約するため削除されました。

処置: プログラム・ロジック内で可能な誤りの有無を検査してください。プロシージャは有効ですが現在使用されていないだけで、警告メッセージが役立つよりも害になる場合は、警告を無効化してください。

PLW-06007: 最適化でコールが削除されるため、"string"が削除されます

原因: 静的プログラム分析により、プロシージャはコールされないか、または実行されないことが判別されました。このため、コンパイル時の時間および実行時の領域を節約するため削除されました。

処置: プログラム・ロジック内で可能な誤りの有無を検査してください。プロシージャは有効ですが現在使用されていないだけで、警告メッセージが役立つよりも害になる場合は、警告を無効化してください。

PLW-06008: プロシージャ'string'のコールはインラインされません

原因: 指定されたプロシージャを参照するプラグマINLINE(, 'NO')が指定されています。コンパイラはこのコールをインライン化できません。

処置: 該当なし

PLW-06009: プロシージャ"string" OTHERSハンドラは、RAISEまたはRAISE_APPLICATION_ERRORでは終了しません

原因: OTHERSハンドラは、RAISEまたは標準プロシージャRAISE_APPLICATION_ERRORのコールを実行せずに終了する場合があります。

処置: 優れたプログラミング手法として、OTHERSハンドラは常に例外を上の階層に渡す必要があることをお薦めします。プログラム・ロジックを検査して、ハンドラ・コードの修正が必要かどうかを判別してください。

PLW-06010: キーワード"string"が定義名として使用されました

原因: PL/SQLまたはSQLキーワードが定義名として使用されました。有効ですが、これはお薦めしません。

処置: 定義するアイテムに対して別の名前を選択してください。

PLW-06011: サイズに制限があるため、依存についての詳細情報を廃棄しました

原因: コンパイル・ユニットが大きすぎて、無効になった場合、そのユニットをすぐにリコンパイルするために使用できる、詳細な依存性情報を保存できませんでした。

処置: ユニットを小さなユニットに分けてください。

PLW-06012: SQL文はインラインできません。string

原因: SQL文をインライン化できませんでした。

処置: 該当なし

PLW-06013: 非推奨のパラメータPLSQL_DEBUGがPLSQL_OPTIMIZE_LEVEL <= 1を強制しています

原因: PLSQL_DEBUGパラメータがTRUEに設定されたため、最適化レベルは、PLSQL_OPTIMIZE_LEVELパラメータがより高いレベルに設定されていても、強制的に1(またはユーザーが0を選択した場合は0)になります。

処置: 推奨されていないので、PLSQL_DEBUGパラメータは使用しないでください。かわりに、PLSQL_OPTIMIZE_LEVELパラメータを1に設定してください。

PLW-06014: PLSQL_OPTIMIZE_LEVEL <= 1はネイティブ・コードの生成を無効にします

原因: 最適化が1以下に設定されたため、ネイティブ・コード生成は実行されませんでした。

処置: ネイティブ・コード生成の目的は高いパフォーマンスを実現することなので、最適化レベルを低くするとこの目的からはずれてしまいます。より高い最適化レベルをリクエストするか、ネイティブ・コード生成のリクエストを削除します。非推奨のパラメータPLSQL_DEBUGを使用した場合も、最適化レベルは強制的に1になることに注意してください。ネイティブ・コード生成が必要な場合は、このパラメータを使用しないでください。

PLW-06015: パラメータPLSQL_DEBUGは推奨されていません。PLSQL_OPTIMIZE_LEVEL = 1を使用してください

原因: PLSQL_DEBUGパラメータが指定されました。

処置: パラメータPLSQL_DEBUGでは、PL/SQLコンパイラによるデバッグ情報の生成は制御されていません。デバッグ情報は常に生成されるので、特別なパラメータは必要ありません。

PLW-06016: ユニットstringが大きすぎます。ネイティブ・コードの生成が無効になりました

原因: プログラムが大きすぎたために、分析に長時間または大量の領域が必要となり、ネイティブ・コンパイルが無効になりました。

処置: ネイティブ・コード生成の目的は高いパフォーマンスを実現することであり、コンパイラはプログラムを広範囲に分析します。可能であれば、最も大きいプロシージャのサイズを小さくするか、プログラム・ユニットを複数のユニットに分割してください。

PLW-06017: 操作によって例外が発生します

原因: この場所の周辺での操作によって実行中に確実に例外が発生しますが、明示的なRAISEでないため、プログラミング・エラーの可能性があります。

処置: 実行中にこの場所の周辺での操作によって例外が確かに発生することが、コンパイラによって判別されました。これはプログラミング・エラーの可能性があります。コードの修正を検討してください。意図的に例外を発生させる場合は、明示的なRAISE文を使用してください。

PLW-06018: 無限大またはNaN値が計算または使用されます

原因: この場所の周辺での操作によって、無限大のNUMBER、BINARY_FLOATまたはBINARY_DOUBLEの値、あるいはNaNのBINARY_FLOATまたはBINARY_DOUBLEの値が、計算または使用されます。

処置: この場所の周辺での操作によって無限大または非数値(NaN)のいずれかの値が計算または使用されることが、コンパイラによって判別されました。これは、プログラミング・エラーを示している可能性があります。コードの修正を検討してください。非数値のBINARY_FLOATまたはBINARY_DOUBLEの値を意図的に使用する場合は、値を計算するのではなく、STANDARDから該当する定数を使用してください。これらの値には有効な使用方法がいくつかありますが、その場合にも警告は表示されます。無限大のNUMBERの値の使用方法は明確に規定されていないため、使用しないようにしてください。

PLW-06019: エンティティstringは推奨されていません

原因: このエンティティは非推奨され、将来のリリースで削除される可能性があります。

処置: 非推奨のエンティティは使用しないでください。

PLW-06020: 非推奨エンティティが参照されました: stringがユニットstringで宣言されています

原因: 参照されたエンティティは非推奨であり、将来のリリースで削除される可能性があります。

処置: 非推奨のエンティティは使用しないでください。警告に特定の指示がある場合は、それに従ってください。

PLW-06021: stringでのPRAGMA DEPRECATEの位置が正しくありません

原因: プラグマの位置が正しくありません。プラグマ非推奨は、非推奨のエンティティの宣言の直後に続かなければなりません。

処置: 非推奨のエンティティの宣言の直後にプラグマを配置します。

PLW-06022: このエンティティでPRAGMA DEPRECATEを使用できません

原因: このエンティティは非推奨にすることはできません。非推奨化が適用されるのは、パッケージ仕様部または型仕様部で宣言できるエンティティ、ならびに最上位のプロシージャおよびファンクション定義に限定されます。

処置: プラグマを削除してください。

PLW-06023: stringの呼出しはほとんど価値がありません

原因: IS NULL、IS NOT NULLまたはNVL演算子は、nullでも常にnullでもないオブジェクトで使用されました。コードを呼び出すことによって、コードをより効率的にすることができます。

処置: コールを削除するコードを書き直します。

PLW-06024: PRAGMA COVERAGEの使用方法が正しくありません

原因: PRAGMA COVERAGEは、属していない場所で発生しました。

処置: NOT_FEASIBLE_STARTの出現がNOT_FEASIBLE_ENDの出現と一致するようにコードを書き換えます。プラグマはネストできません。

PLW-06025: NLSセッション・パラメータを暗黙的に使用すると、セキュリティ上のリスクが生じる可能性があります

原因: 各国語サポート(NLS)変換パラメータを明示的に指定せずにCHARまたはVARCHAR型に変換すると、特定のセキュリティ・リスクが発生する可能性があります。これは、文字以外の型が連結されたときのように、暗黙的に変換が行われるときによく発生します。データ変換のセキュリティ上の考慮事項の詳細については、Oracle Database SQL言語リファレンス・マニュアルを参照してください。

処置: 暗黙の変換を書き換えて、変換で使用する書式モデルを明示的に指定します。

PLW-06026: パッケージ仕様部では、グローバル変数stringを公開します

原因: グローバル変数はパッケージ仕様で直接宣言されていました。

処置: グローバル変数をパッケージ仕様部で直接公開しないように、コードを書き直してください。たとえば、グローバル変数をパッケージ本体に移動し、アクセスするとその値を返すように、関数を提供します。これが実現可能でない場合は、含むパッケージ仕様部に"ACCESSIBLE BY"句(ホワイトリスト)を追加して、一連の既知の安全なユニットへのアクセスを制限します。

PLW-06027: プロシージャ"string"はインラインの後に削除されます

原因: インラインの後、静的プログラム分析でプロシージャへのすべてのコールがインライン化または削除されたと判断されました。このため、コンパイル時の時間および実行時の領域を節約するため削除されました。

処置: プログラム・ロジック内で可能な誤りの有無を検査してください。プロシージャが有用で、すべてのコールのインラインが必要な場合は警告を無効にしてください。

PLW-07203: パラメータ'string'は、NOCOPYコンパイラ・ヒントを使用することにより、パフォーマンスを向上できる可能性があります。

原因: 指定されたパラメータのモードがIN OUTまたはOUTです。NOCOPYコンパイラ・ヒントを使用すると、このサブプログラムのコールを高速化できる場合があります。

処置: パラメータのモードを、NOCOPYコンパイラ・ヒントを明示的に使用するように変更してください。たとえば、サブプログラム宣言がPROCEDURE proc(p1 IN OUT CLOB);の場合は、PROCEDURE proc(p1 IN OUT NOCOPY clob);に変更するとNOCOPYヒントの利点が得られます。オブジェクト型のメンバー・プロシージャまたはファンクションの場合は、次のようにSELFパラメータの明示的な宣言が必要になることがあります。MEMBER PROCEDURE proc(SELF IN OUT NOCOPY MY_TYPE);

PLW-07204: 列タイプと異なる変換は、最適な問合せ計画が生成されない可能性があります

原因: このSQL文のWHERE句を評価すると、この列の値が別のデータ型に変換されます。これにより、SQLオプティマイザがこの列を含む索引を使用して文の実行を遅らせることができなくなります。

処置: この列を含む式のオペランドを変更して、データ型の変換を回避します。

PLW-07205: SIMPLE_INTEGERがBINARY_INTEGERまたはPLS_INTEGERと混在しています

原因: 同じ算術式にSIMPLE_INTEGERと、BINARY_INTEGERまたはPLS_INTEGER引数を使用すると、特定の最適化を妨げる可能性があります。

処置: 式がパフォーマンス・クリティカル・パスで計算される場合のみ、SIMPLE_INTEGER値を使用するようにしてください。

PLW-07206: 分析の結果、'string'への割当ては必要ありません

原因: この割当ては不要になる可能性があります。PL/SQLオプティマイザは、設定されている変数の使用をこれ以上検出できませんでした。特定の例外の発生などの不測の動作に対して割当てが行われていた場合、コンパイラは不測の動作を認識できない可能性があるため、この警告が適切ではないことがあります。

処置: その値が再び使用されない変数が割当てで設定されていて、考慮する不測の動作(例外またはコール)がない場合は、パフォーマンス向上のため割当てを削除します。特定の既知の例外を発生するための割当てである場合は、割当てをRAISE文に置き換えてください。

PLW-07207: LIMIT句が指定されていないBULK COLLECTが使用されました

原因: このFETCH文は、付随するLIMIT句なしでBULK COLLECTを使用しました。FETCHの結果セットは大きくなる可能性があり、実行時にメモリー不足の原因となる可能性があります。

処置: LIMIT句を使用すると、メモリー消費を制御することができます。