Plsql-records
PL/SQL-レコード
この章では、PL/SQLのレコードについて説明します。 *レコード*は、さまざまな種類のデータ項目を保持できるデータ構造です。 レコードは、データベーステーブルの行に似たさまざまなフィールドで構成されます。
たとえば、図書館で本を追跡したいとします。 タイトル、著者、件名、書籍IDなど、各書籍に関する次の属性を追跡できます。 これらの各項目のフィールドを含むレコードにより、BOOKを論理ユニットとして扱うことができ、より適切な方法でその情報を整理および表現できます。
PL/SQLは、次のタイプのレコードを処理できます-
- テーブルベース
- カーソルベースのレコード
- ユーザー定義のレコード
テーブルベースのレコード
%ROWTYPE属性により、プログラマは table-based および cursorbased レコードを作成できます。
次の例は、 table-based レコードの概念を示しています。 前の章で作成して使用したCUSTOMERSテーブルを使用します-
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
カーソルベースのレコード
次の例は、*カーソルベース*レコードの概念を示しています。 前の章で作成して使用したCUSTOMERSテーブルを使用します-
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
ユーザー定義のレコード
PL/SQLには、様々なレコード構造を定義できるユーザー定義のレコード型が用意されています。 これらのレコードは異なるフィールドで構成されています。 図書館で本を追跡したいとします。 あなたは、各本に関する次の属性を追跡することができます-
- タイトル
- 著者
- 件名
- ブックID
レコードを定義する
レコードタイプは次のように定義されています-
本の記録は次のように宣言されています-
フィールドへのアクセス
レコードの任意のフィールドにアクセスするには、ドット*(。)*演算子を使用します。 メンバーアクセス演算子は、レコード変数名とアクセスするフィールドの間のピリオドとしてコーディングされます。 以下は、レコードの使用法を説明する例です-
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
サブプログラムパラメータとしてのレコード
他の変数を渡すのと同じように、サブプログラムのパラメーターとしてレコードを渡すことができます。 また、上記の例でアクセスしたのと同じ方法でレコードフィールドにアクセスできます-
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-