プロシージャの作成と編集

提供: ER/Studio Data Architect
移動先: 案内検索

SQL プロシージャの作成と編集 への移動

プロシージャはデータベースに格納された再利用可能な PL/SQL ブロックで、アプリケーションから呼び出すことができます。プロシージャの再利用により、コードの開発、デバッグ、およびメンテナンスを効率化できます。プロシージャを使用してデータベースのセキュリティを強化することができます。このためには、ユーザーがテーブルに直接アクセスするのではなく、ユーザーにテーブルへの実行権限を付与するプロシージャを記述します。また、プロシージャによってデータベースの効率を向上させることができます。同じデータベースにアクセスする複数のアプリケーションに存在するロジックを、プロシージャにまとめて集中管理することで、コードの保守が容易になります。プロシージャの実行可能な形式のみがサーバーに保存されるため、ストレージに必要な容量が削減されます。また、プロシージャはサーバー上で実行されるため、ネットワークの負荷も減少します。

プロシージャはファンクションに似ていますが、ファンクションは SQL 文の内部で使用されるのに対し、プロシージャは CALL 文を使用して呼び出す必要があります。

ER/Studio Data Architect では、次のようなプロシージャの種類をサポートします。

  • 通常のプロシージャまたはスクリプト プロシージャ: 作成されたテーブルでのみ使用できます。スクリプト プロシージャは SQL で記述できます。スクリプト プロシージャを作成するには、[テーブル エディタ]の[依存関係]タブ、またはモデル エクスプローラの[プロシージャ]ノードでプロシージャ名をダブルクリックして、プロシージャ SQL エディタを使用します。
  • テンプレート プロシージャ: 作成または修正されたテーブルでのみ使用できます。テンプレート プロシージャは BASIC で記述できます。作成されたテンプレート プロシージャは、モデル エクスプローラの[プロシージャ]ノードのプロシージャ一覧には表示されません。
  • 再利用可能なプロシージャ: 再利用可能なプロシージャはデータ ディクショナリで作成されます。[テーブル エディタ]で修正されると、テンプレート プロシージャになります。テンプレート プロシージャは BASIC で記述できます。再利用可能なプロシージャは、BASIC コードで記述されたテンプレート プロシージャです。再利用可能なプロシージャは、コード内でテーブルのコンテキストを使用するため、任意のテーブルに適用できます。データ ディクショナリの[再利用可能なプロシージャ]ノードには、DBMS プラットフォーム別のノードが含まれています。再利用可能なプロシージャは、プラットフォーム別に分類されます。再利用可能なプロシージャを作成、編集、または削除するには、対象の DBMS ノードを右クリックし、適切なショートカット メニュー項目をクリックします。

プロシージャは、次のデータベース プラットフォームでサポートされます。

  • IBM DB2 for LUW 5.x、6.x、7.x、8.x、9.x、および 10.x
  • InterBase 2007、XE、XE3
  • Microsoft Access 6.x および 7.x
  • Microsoft SQL Server 6.x、7.x、2000 ~ 2014
  • Oracle 7.x、8.x、9i、10g、11g、および 12c
  • Sybase ASA 6.0、7.0、8.0、9.0、Adaptive Server IQ 12
  • Sybase Adaptive Server IQ 12
  • Sybase ASE 11.0、11.5、11.9、12.0、12.5、および 15
  • "Northwind.dm1"サンプル モデルには、プロシージャを使用して情報を収集し、計算を実行してサマリ情報を取得する例が含まれています。

メモ

  • テーブルに関連付けられたテンプレート プロシージャは、[テーブル エディタ]の[依存関係]タブに表示されます。
  • 作成したスクリプト プロシージャは、モデル エクスプローラの[プロシージャ]ノードに表示されます。
  • トリガーやプロシージャのようなプロシージャ ロジックのコードを生成するには、コードの結果を resultstring という変数に格納する必要があります。たとえば、"Northwind.dm1" サンプル モデルには、データ ディクショナリに Oracle プラットフォーム用の再利用可能なトリガー、SYSUPDATE があります。トリガーのコードには次の文が含まれています。これはトリガーのコード生成に必要です。
    resultstring = trigBody


関連項目