行変数内のフィールドの参照

フィールド値は、複数のコンテキストで参照できます。

行フィールド値は、フィールドのデータ・タイプの値が許可される場合にはどの場所でも参照できます。 行フィールドの参照は、以下のコンテキストでサポートされています。
  • 以下のように、フィールドのデータ・タイプの値が許可されるすべての場所 (以下の場合に限定される訳ではありません)。
    • 割り当てのソースとして (SET ステートメント)
    • 割り当てのターゲットとして (SET ステートメント)
    • SELECT INTO、VALUES INTO、または FETCH INTO ステートメントのターゲットとして。
行変数内のフィールドの値を参照するには、単一ドット表記を使用します。 フィールド値は、以下のように変数と関連付けられます。
<row-variable-name>.<field-name>
以下は、変数 employee のフィールド id にアクセスする方法の例です。
employee.id
以下に、サポートされている、行変数フィールド値に対する参照例を幾つか示します。
以下の例は、行変数 v1 内のフィールドにリテラル値を割り当てる方法を示しています。

-- Literal assignment to a row variable field
SET v1.c1 = 5;
以下の例は、複数の行変数フィールドにリテラル値および式値を割り当てる方法を示しています。
-- Literal assignment to fields of row variable
SET (emp.id, emp.name) = (v1.c1 + 1, 'James');
以下の例は、INSERT ステートメントでフィールド値を参照する方法を示しています。
-- Field references in an INSERT statement
INSERT INTO employee 
VALUES(v1.c1, 'Beth'), 
      (emp.id, emp.name); 
以下の例は、UPDATE ステートメントでフィールド値を参照する方法を示しています。
-- Field references in an UPDATE statement
UPDATE employee 
SET name = 'Susan' 
WHERE id = v1.c1;
以下の例は、SELECT INTO ステートメントでフィールド値を参照する方法を示しています。
-- Field references in a SELECT INTO statement
SELECT employee.firstname INTO v2.c1 
FROM employee 
WHERE name=emp.name;