pl sql package oracle pl sql package tutorial with examples
PL SQLパッケージ、その利点、仕様、および構造について学習します。
この記事では、 PL / SQLシリーズ 。の中に PLSQLレコード チュートリアルでは、プログラミング例を使用してレコードとレコードタイプについて学習しました。
ここでは、PL / SQLのパッケージとパッケージのいくつかの重要な機能について説明します。また、それらの基本的な操作のいくつかについても説明します。
PL / SQLのdbms_ouputパッケージとそのサブプログラムについても説明します。
学びから始めましょう!
最高のオペレーティングシステムは何ですか
学習内容:
PLSQLパッケージ
パッケージは、PL / SQLで論理的に接続された項目、タイプ、およびサブプログラムを分離するスキーマ形式のオブジェクトです。パッケージは2つの部分で構成されています。 パッケージ仕様 そして パッケージ本体または定義 。
パッケージ仕様は、アプリケーションへのインターフェイスのようなものであり、変数、定数、型、例外、カーソル、およびサブプログラムを宣言するために使用されます。パッケージの本体は、パッケージ仕様で宣言されているサブプログラムとカーソルを実装します。
パッケージ仕様(パッケージへのインターフェイスとも呼ばれます)に触れることなく、パッケージ本体を更新、デバッグ、または変更できます。
PL / SQLパッケージの利点
パッケージの利点は次のとおりです。
- それは私たちのコードにモジュール性を与えます。
- アプリケーションを簡単に設計するのに役立ちます。
- PLSQLパッケージは、パブリックおよびプライベートのアイテム、データ型、およびサブプログラムを使用して情報を非表示にするのに役立ちます。
- パッケージを使用すると、データベースに保存しなくても、すべてのトランザクションの情報を維持できます。
- パッケージは、実行のパフォーマンスを向上させるのに役立ちます。
パッケージ仕様
パッケージ仕様は、パッケージへのインターフェースのようなものです。変数、定数、型、例外、カーソル、およびサブプログラムの宣言を処理します。したがって、パッケージの内容に関するすべての詳細が含まれていますが、サブプログラムの実装は含まれていません。
パッケージ仕様内のオブジェクトはパブリックオブジェクトです。パッケージ本体内に実装されているすべてのサブプログラムはプライベートオブジェクトです。パッケージ仕様内で複数のグローバル変数、関数、またはプロシージャを宣言できます。
パッケージ仕様は独立したエンティティであり、パッケージ本体がなくても存在できます。
コードの実装:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
上記のコードの出力:
パッケージ本体
パッケージ本体には、パッケージ仕様で宣言されているカーソルとサブプログラムの実装が含まれています。パッケージ本体に実装されているサブプログラムは、パッケージ仕様で宣言されていれば、パッケージの外部からアクセスできることを覚えておく必要があります。
パッケージ仕様および本体で宣言されているサブプログラムは正確である必要があります。この比較は、ヘッダーのトークンごとに行われます。それらが一致しない場合、PL / SQLは例外をスローします。
パッケージ本体には、パッケージ仕様で宣言されていない他のサブプログラムが含まれている場合があります。その場合、それらはそのパッケージ本体のみにプライベートです。 パッケージ本体を作成する パッケージ本体の作成に使用されるキーワードです。
のパッケージ本体を作成する例を見てみましょう。 他人 パッケージ。
パッケージ本体を使用したコード実装。
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
上記のコードの出力は次のようになります。
パッケージ要素を参照してください
パッケージ仕様で要素を宣言し、パッケージ本体に実装し終えたので、これらの要素を参照する必要があります。パッケージ要素は、関数、プロシージャ、および変数で構成されています。
アンドロイド用のyoutubeからmp4へのコンバーター
パッケージのこれらのパブリック要素には、パッケージ名の後にドット(。)表記で区切られた要素名を付けてアクセスできます。
構文:
package_name.element_name;
要素にアクセスするためのコーディングの実装:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
上記のコードの出力:
PLSQLパッケージを作成する
パッケージがセッションで呼び出されたり参照されたりすると、そのパッケージの新しいインスタンスがPL / SQLで作成されます。パッケージの要素を初期化するか、コードのパッケージ初期化ブロックを使用してインスタンスの作成中に他のアクションを実行するオプションがあります。これは、パッケージ要素の初期化後のパッケージ本体内の実行可能なコードブロックです。
パッケージ作成の構文:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
ここで、package_nはパッケージの名前です。
パッケージのオーバーロード
パッケージ内には、類似した名前を持つ複数のサブプログラムが存在する可能性があります。この機能は、異種のデータ型を持つ同種のパラメーターが必要な場合に役立ちます。パッケージ内のオーバーロードの概念により、プログラマーは実行したいアクションのタイプを明確に述べることができます。
プロシージャのオーバーロードを伴うコーディング実装。 (作成されたパッケージ):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
上記のコードの出力:
プロシージャのオーバーロードを伴うコーディング実装。 (パッケージ本体作成)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
上記のコードの出力:
プロシージャのオーバーロードを伴うコーディング実装。 (パッケージ手順参照)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
上記のコードの出力:
PLSQLパッケージの依存関係
PL / SQLのパッケージの依存関係を以下に示します。
- パッケージ仕様は独立したアイデンティティです。
- パッケージ本体はパッケージ仕様に依存しています。
- パッケージ本体は個別にのみコンパイルできます。ただし、パッケージ仕様をコンパイルする場合は、本体を再度コンパイルする必要があります。
- プライベート要素に依存するパッケージ本体内の関数またはプロシージャは、プライベート要素の宣言後に実装する必要があります。
PL SQLでパッケージを作成するためのガイドライン:
- パッケージは、将来再利用できるように、一般的な用語で作成する必要があります。
- パッケージ内の重複する特性を避けてください。
- パッケージ仕様には、適切に設計されたアプリケーションの鍵が含まれています。パッケージ本体を作成する前に、パッケージ仕様を完成させてください。
- パッケージ仕様には、パッケージユーザーがアクセスできる必要があるアイテム、サブプログラム、およびタイプのみを含める必要があります。不要な実装情報があってはなりません。
- パッケージ仕様には、限られた数のアイテムが含まれている必要があります。パッケージ仕様を変更するには、PL / SQLがパッケージを参照するすべてのサブプログラムを再コンパイルする必要があるため、コードの再コンパイルにかかる時間を節約できます。
PL / SQLのパッケージ情報
パッケージのソース、サブプログラム、オーバーロードされたアイテムなど、関連するすべての詳細は、パッケージの作成後にデータ定義テーブルに保存されます。
データ定義テーブルのリストは次のとおりです。
- USER_PROCEDURES: このテーブルには、現在のユーザーのオーバーロードされたアイテム、object_idなどのサブプログラム情報が含まれています。
- ALL_PROCEDURES: このテーブルには、すべてのユーザーのオーバーロードされたアイテム、object_idなどのサブプログラム情報が含まれています。
- USER_SOURCE: このテーブルには、現在のユーザーのオブジェクトソースに関する情報が含まれています。
- ALL_SOURCE: このテーブルには、すべてのユーザーのオブジェクトソースに関する情報が含まれています。
- ALL_OBJECT: このテーブルには、creation_date、object_id、およびすべてのユーザーのその他のオブジェクトの詳細など、パッケージに関する情報が含まれています。
PL / SQLでのDBMS出力
DBMS_OUTPUTパッケージを使用すると、サブプログラムおよびコードのブロックから生成されたPL / SQL出力を表示できます。これは、コードのデバッグ、テスト、およびメッセージの送信に役立ちます。
ザ・ put_line プロシージャは、出力データをバッファに生成します。情報はの助けを借りて表示されます get_line 手順またはSQL * PlusでSERVEROUTPUTONを構成します。
DBMS_OUTPUTパッケージには、次のサブプログラムが含まれています。
Sl No. | 名前 | 目的 |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | メッセージ出力を制限します。 |
二 | DBMS_OUTPUT.ENABLE(INTEGER DEFAULT 20000のバッファー) | メッセージ出力を許可します。バッファがNULLに設定されている場合、それはバッファの無制限のサイズを表します。 |
3 | DBMS_OUTPUT.GET_LINE(行OUT VARCHAR、ステータスOUT NUMBER) | バッファリングされた情報を1行で取得します。 |
4 | DBMS_OUTPUT.NEW_LINE | 行末マーカーを終了します。 |
5 | DBMS_OUTPUT.PUT(item IN VARCHAR) | 不完全な行をバッファに入れます。 |
6 | DBMS_OUTPUT.PUT_LINE(item IN VARCHAR) | 完全な行をバッファに入れます。 |
コードの実装:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
上記のコードの出力:
よくある質問と回答
Q#1)PL SQLのパッケージとは何ですか?
回答: パッケージは、論理的に関連する変数、定数、カーソル、サブプログラム、およびタイプを分類するオブジェクトスキーマです。
Q#2)PL SQLパッケージの利点は何ですか?
回答:パッケージの利点は以下のとおりです。
- パッケージを使用すると、アプリケーションの設計が容易になります。
- パッケージを使用すると、カプセル化を実現できます。
- これらのパッケージは、実行速度の点でパフォーマンスを向上させるのに役立ちます。
- コードはパッケージによってよりモジュール化されます。
Q#3)仕様なしでパッケージ本体を作成できますか?
回答: はい、パッケージ仕様なしでパッケージ本体を作成できます。
Q#4)PLSQLのDbms_outputPut_lineとは何ですか?
回答: dbms_output put_lineは、フラットファイルまたはPL / SQL出力画面に情報を書き込むことができるOracleのプロシージャです。
Q#5)Dbms_outputとは何ですか?
回答: dbms_outputは、デバッグ情報の表示、出力、およびサブプログラム、トリガー、パッケージ、およびコードのPL / SQLブロックからのメッセージの送信を可能にするデフォルトのパッケージです。
2つのファイルを比較するunixコマンド
結論
このチュートリアルでは、実際のアプリケーションで使用するために不可欠なPLSQLパッケージに関するいくつかの基本的な概念について詳しく説明しました。
以下のトピックについて説明しました。
- パッケージとその構造。
- パッケージのさまざまな機能。
- DBMS出力。
- DBMS_OUTPUTパッケージのサブプログラム。
<< PREV Tutorial | 次のチュートリアル>>