ホームページ データベース Oracle Oracle のスケジュールされたストアド プロシージャ

Oracle のスケジュールされたストアド プロシージャ

May 07, 2023 pm 10:33 PM

Oracle は非常に人気のあるリレーショナル データベースです。ビジネスでは、自動化された操作を完了して運用コストを節約するために、ストアド プロシージャを定期的に実行する必要があることがよくあります。この記事では、Oracle を使用してストアド プロシージャを定期的に実行する方法を紹介します。

1. Oracle のストアド プロシージャのスケジュールされた実行の基本概念
Oracle のストアド プロシージャのスケジュールされた実行とは、システムが事前に作成されたストアド プロシージャを一定の時間間隔内で自動的に実行することを意味します。この方法は、通常のデータのアーカイブ、バックアップ、クリーンアップ、その他のタスクによく使用されます。

2. Oracle のストアド プロシージャのスケジュールされた実行を実装する方法
Oracle のストアド プロシージャのスケジュールされた実行は、Oracle のスケジューラを通じて実現できます。スケジューラを使用すると、指定した時点または間隔でジョブを開始し、時間が経過したらジョブを終了することが簡単にできます。

  1. ジョブの作成
    Oracle では、PL/SQL、PL/SQL Developer、Toad およびその他のツールを使用してジョブを作成できます。
    たとえば、ストアド プロシージャ「mystoredprocedure」の実行を含む、「myjob」というジョブを作成します。

begin
dbms_scheduler.create_job
(job_name=>'myjob' ,
job_type=>'STORED_PROCEDURE',
job_action=>'mystoredprocedure');
end;

  1. スケジュールされた実行
    ジョブの作成後、他に何をするかこの仕事を実行する時間はありますか? Oracle スケジューラは、次の 2 つの方法でジョブの実行時間を制御できます。

(1) 時間ベースの実行
Oracle では、dbms_scheduler パッケージを使用してスケジュールを作成できます。

##BEGIN

DBMS_SCHEDULER.CREATE_SCHEDULE (

      schedule_name          => 'weekends',  
      start_date             => SYSTIMESTAMP,  
      repeat_interval        => 'FREQ=WEEKLY;BYDAY=SAT,SUN;BYHOUR=0;BYMINUTE=0',  
      end_date               => NULL,  
      comments               => 'Weekend schedule - Saturday and Sunday every week at midnight.'  
ログイン後にコピー
);

END;

このコード スニペットは、毎日 0 時に実行されるスケジュールを作成できます。毎週末に。もちろん、特定のビジネス ニーズに基づいてさまざまなスケジュールを作成できます。

myjob を次の時間に実行するには、週末のスケジュール ロジックを myjob に適用する必要があります:

BEGIN

DBMS_SCHEDULER.SET_ATTRIBUTE

(  
  name                      => 'myjob',  
  attribute                 => 'repeat_interval',  
  value                     => 'weekends'  
);  
ログイン後にコピー
END ;

この時間ベースのスケジューリング方法を使用すると、ジョブの実行サイクルは非常に固定され、ビジネス ニーズに応じて開発者によって設定されます。

(2) イベント ベースの実行

ストアド プロシージャのスケジュールされた実行を実装するもう 1 つの方法は、イベント ドリブンです。たとえば、データ テーブル内のフィールドが変更された場合、ストアド プロシージャを駆動する必要があります。 .実行。 Oracle では、次のコードを使用してイベントベースのスケジュールされたスケジュールを作成できます:

BEGIN

DBMS_SCHEDULER.CREATE_JOB

(  
  job_name             => 'job_name',  
  job_type             => 'PLSQL_BLOCK',  
  job_action           => 'BEGIN my_procedure(:my_param); END;',  
  start_date           => SYSTIMESTAMP,  
  event_condition      => 'tab.col3 = ''Y''',  --这里可以选择需要监控的事件类型和字段  
  queue_spec           => 'queue_specification',  
  auto_drop            => FALSE,  
  enabled              => TRUE  
);  
ログイン後にコピー
END;

    ストレージの実行プロセス
  1. 上記の例では、「myjob」ジョブの役割は、ストアド プロシージャ「mystoredprocedure」を実行することです。ここで、スケジューラ自体はストアド プロシージャを実行せず、ジョブの実行の管理のみを行うことがわかります。
ストアド プロシージャを正常にスケジュールするには、ストアド プロシージャを作成し、ジョブに関連付ける必要があります。ここでは、例として「mystoredprocedure」という名前のストアド プロシージャを作成します。

CREATE OR REPLACE PROCEDURE "mystoredprocedure"

IS
BEGIN

INSERT INTO employees_audit  
  (employee_id,  
   salary,  
   entry_date)  
SELECT employee_id,  
       salary,  
       SYSDATE  
  FROM employees
  WHERE hire_date > SYSDATE - 1;  
       
ログイン後にコピー
END mystoredprocedure;

この例では、新しいデータ情報をデータベースのemployees_auditテーブルに保存するだけです。開発者は、特定のニーズに応じて独自のストアド プロシージャを作成できます。

ストアド プロシージャを定期的に実行するプログラムはバックグラウンドで実行されます。開発者が設定した時間スケジュール ポリシーに従って、ジョブは指定された時間に開始され、mystoredprocedure ストアド プロシージャが実行されます。

3. 概要

Oracle のストアド プロシージャのスケジュールされた実行は、定期的なタスクを処理するための効率的なソリューションです。このプロセスは、Oracle のスケジューラを使用して簡単に実装できます。この記事で紹介した実装方法により、開発者は実行時間、頻度、実行する必要があるストアド プロシージャを柔軟に設定できます。これにより、業務処理時間が大幅に短縮され、処理効率が向上します。

以上がOracle のスケジュールされたストアド プロシージャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleでユーザーと役割を作成するにはどうすればよいですか? Oracleでユーザーと役割を作成するにはどうすればよいですか? Mar 17, 2025 pm 06:41 PM

この記事では、SQLコマンドを使用してOracleでユーザーと役割を作成する方法について説明し、役割の使用を含むユーザー許可を管理するためのベストプラクティス、最小特権の原則、定期的な監査について説明します。

敏感なデータを保護するために、Oracleデータのマスキングとサブセットを使用するにはどうすればよいですか? 敏感なデータを保護するために、Oracleデータのマスキングとサブセットを使用するにはどうすればよいですか? Mar 13, 2025 pm 01:19 PM

この記事では、敏感なデータを保護するためのソリューションであるOracle Data Masking and Subsetting(DMS)を詳しく説明しています。 機密データの特定、マスキングルールの定義(シャッフル、代替、ランダム化)、ジョブの設定、監視、および展開をカバーします

PL/SQLのカーソルを使用して、複数のデータを処理するにはどうすればよいですか? PL/SQLのカーソルを使用して、複数のデータを処理するにはどうすればよいですか? Mar 13, 2025 pm 01:16 PM

この記事では、列ごとのデータ処理用のPL/SQLカーソルについて説明します。 それは、暗黙、明示、およびREFカーソルを比較して、カーソル宣言、開閉、フェッチ、および閉鎖を詳述しています。 効率的な大規模なデータセットの取り扱いとループの使用の手法

最小限のダウンタイムでOracleでオンラインバックアップを実行するにはどうすればよいですか? 最小限のダウンタイムでOracleでオンラインバックアップを実行するにはどうすればよいですか? Mar 17, 2025 pm 06:39 PM

この記事では、RMANを使用した最小限のダウンタイムでOracleでオンラインバックアップを実行する方法、ダウンタイムを減らし、データの一貫性を確保し、バックアップの進捗を監視するためのベストプラクティスを実行する方法について説明します。

透明なデータ暗号化(TDE)を使用して、Oracleで暗号化を構成するにはどうすればよいですか? 透明なデータ暗号化(TDE)を使用して、Oracleで暗号化を構成するにはどうすればよいですか? Mar 17, 2025 pm 06:43 PM

この記事では、Oracleで透明なデータ暗号化(TDE)を構成する手順を概説し、ウォレットの作成、TDEの有効化、およびさまざまなレベルでのデータ暗号化の詳細を説明します。また、データ保護やコンプライアンスなどのTDEのメリット、およびVeriの方法についても説明しています

Oracleで自動ワークロードリポジトリ(AWR)および自動データベース診断モニター(ADDM)を使用するにはどうすればよいですか? Oracleで自動ワークロードリポジトリ(AWR)および自動データベース診断モニター(ADDM)を使用するにはどうすればよいですか? Mar 17, 2025 pm 06:44 PM

この記事では、データベースのパフォーマンス最適化にOracleのAWRとADDMの使用方法について説明します。 AWRレポートの生成と分析の詳細、およびADDMを使用してパフォーマンスボトルネックを識別および解決します。

フラッシュバックテクノロジーを使用して、論理データの破損から回復するにはどうすればよいですか? フラッシュバックテクノロジーを使用して、論理データの破損から回復するにはどうすればよいですか? Mar 14, 2025 pm 05:43 PM

記事では、Oracleのフラッシュバックテクノロジーを使用して、論理データの腐敗から回復し、実装の手順を詳細にし、回復後のデータの整合性を確保することについて説明します。

仮想プライベートデータベース(VPD)を使用してOracleデータベースにセキュリティポリシーを実装するにはどうすればよいですか? 仮想プライベートデータベース(VPD)を使用してOracleデータベースにセキュリティポリシーを実装するにはどうすればよいですか? Mar 13, 2025 pm 01:18 PM

この記事では、仮想プライベートデータベース(VPD)を使用してOracleデータベースセキュリティポリシーの実装を詳しく説明しています。 ユーザーコンテキストに基づいてデータをフィルタリングする関数を介してVPDポリシーの作成と管理を説明し、Pest Pのようなベストプラクティスを強調しています

See all articles