9.4 プログラム

「プログラム」ページには、作成されたプログラムのリストが表示されます。

プログラムの「アクション」メニューは、プログラムの編集、削除、有効化または無効化、およびプログラム詳細の表示(使用済プロシージャやプロシージャの依存性など)で構成されています。

9.4.1 プログラムの作成または編集

この項では、Oracle Schedulerプログラムを作成または編集する方法について説明します。

プログラムを作成するために、Database Actionsは内部的にDBMS_SCHEDULER.CREATE_PROGRAMプロシージャを使用します。

  1. 「プログラム」ページで、右上にある「プログラムの作成」をクリックします。
  2. 「プログラム・プロパティ」で、次のフィールドに入力します。

    「詳細」タブ

    • 名前: プログラムの名前。この名前はSQLネームスペースにおいて一意である必要があります。たとえば、プログラムはスキーマの表と同じ名前を持つことができません。

    • 有効: このオプションを指定すると、妥当性チェックが実行され、すべてのチェックに成功した場合にプログラムが使用可能で作成されます。このオプションを指定しない場合、プログラムは使用可能で作成されません。

    • 説明: プログラムの説明に使用できるオプションのテキスト文字列。

    • タイプ
      • PL/SQLブロック: プログラムはPL/SQLブロックです。ジョブまたはプログラムのタイプがPLSQL_BLOCKの場合、そのジョブまたはプログラムの引数はサポートされません。この場合、引数は0である必要があります。完全なPL/SQLコードを入力または貼り付けるか、既存のコードを編集します。

      • ストアド・プロシージャ: プログラムはPL/SQLストアド・プロシージャ、Javaストアド・プロシージャまたは外部のCサブプログラムです。プロシージャのみがサポートされ、戻り値を持つファンクションはサポートされません。IN OUT引数またはOUT引数を持つPL/SQLプロシージャは、サポートされません。

        スキーマ: ストアド・プロシージャのスキーマ。指定しない場合、ジョブのスキーマが想定されます。

        プロシージャ: ストアド・プロシージャの名前。

        引数: 各引数の名前、データ型、デフォルト値、および、入力引数、出力引数、入出力引数のいずれであるか。

      • スクリプト: プログラムは、SQLスクリプト (SQL*Plus文)、バックアップ・スクリプト (RMANコマンド)または 外部スクリプト (オペレーティング・システム・コマンド)です。ボックスにスクリプトのテキストを入力または貼付けします。

    「プロパティ」タブ

    プログラムのプロパティを設定できます。ほとんどのプロパティのデフォルトはNULLですが、ボックスをチェックして値を指定することができます。

    • デタッチ済: プログラムがデタッチされたジョブの場合は有効になります。デタッチされたジョブを使用して、スケジューラとは独立して非同期に別のプロセスで実行されるスクリプトやアプリケーションを起動できます。通常、デタッチされたジョブは別のプロセスを起動してから終了します。終了時(ジョブ処理の完了時)に、デタッチされたジョブは実行状態のままになります。この実行状態は、このジョブが起動した非同期プロセスがまだアクティブであることを示しています。非同期プロセスは、その作業を完了するときに、データベースに接続して、ジョブを終了させるDBMS_SCHEDULER.END_DETACHED_JOB_RUNを呼び出す必要があります。

    • 最大実行数: プログラムが完了とマークされるまでの最大実行数。

    • 最大失敗数: プログラムが中断とマークされるまでに許容される最大失敗数。

    • 最大実行期間: プログラムを実行できる最大時間。

    • スケジュール制限: プログラムの実行が取り消される前の、スケジュールされたジョブ開始と、実際のジョブ開始間の最大遅延時間。

  3. 「DDL」ペインで、生成されたSQL文を確認して保存できます。
    • 新しいプログラムの場合、「CREATE」をクリックして生成されたDDL文を表示します。

    • プログラムを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。

    終了したら、「適用」をクリックします。

  4. 「出力」ペインに、DDLコマンドの結果が表示されます。エラーがある場合は、対応するペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存したり、出力をクリアできます。