プライマリ・コンテンツに移動
Oracle® Database管理者リファレンス
18c for Microsoft Windows
E99714-01
目次へ移動
目次
索引へ移動
索引

前
次

外部プロシージャのデバッグについて

通常、外部プロシージャが失敗する場合は、Cプロトタイプに問題があります。

つまり、プロトタイプがPL/SQLによって内部で生成されるプロトタイプと一致していません。これは、互換性のないCデータ型を指定した場合に発生する可能性があります。たとえば、データ型がREALOUTパラメータを渡すには、float *を指定する必要があります。floatdouble *または他のCデータ型を指定すると、結果が不一致になります。

このような場合は、「外部プロシージャ・エージェントへのRPC接続が失われました。」エラーが発生します。これは、外部プロシージャでコア・ダンプが発生したため、エージェントextprocが異常終了したことを意味します。

関連項目:

Cプロトタイプ・パラメータを宣言する際にエラーの発生を回避する方法の詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。

パッケージDEBUG_EXTPROCの使用

PL/SQLでは、外部プロシージャのデバッグを支援する目的でユーティリティ・パッケージDEBUG_EXTPROCが提供されています。

このパッケージをインストールするには、PL/SQLデモ・ディレクトリにあるスクリプトdbgextp.sqlを実行します。

パッケージを使用するには、dbgextp.sqlの手順に従います。Oracle Databaseアカウントには、パッケージに対するEXECUTE権限およびCREATE LIBRARY権限が必要です。

外部プロシージャをデバッグするには、次のようにします。

  1. Windowsのタスク マネージャの「プロセス」ダイアログ・ボックスでExtProc.exeを選択します。
  2. 右クリックして、「デバッグ」を選択します。
  3. メッセージ・ウィンドウで「OK」をクリックします。

    Microsoft Visual C++のデバッグ方式でDLLをビルドした場合は、Visual C++が起動します。

  4. Visual C++ウィンドウで、「編集」「ブレークポイント」を選択します。

    PL/SQLデモ・ディレクトリのdbgextp.sqlで示されたブレーク・ポイントを使用します。

    関連項目:

    • ORACLE_HOME\rdbms\extproc\readme.doc(サンプルの実行方法の説明およびデバッグのアドバイスが含まれます)

    • 『Oracle Database PL/SQL言語リファレンス』

    • 『Oracle Database Java開発者ガイド』

    • 外部プロシージャのコールの詳細は、『Oracle Database開発ガイド』を参照してください。

    • 『Oracle Databaseデータ・カートリッジ開発者ガイド』