あなたは使用することができます 新しい値を古いリストに追加します (または、存在しない場合は新しいリストを作成します)。
Oracle 11g R2 スキーマのセットアップ :
CREATE OR REPLACE TYPE給与リストを数字のテーブルとして;/テーブルの従業員を作成します( id NUMBER, 給与の履歴給与リスト) ネストされたテーブルの給与_履歴は、給与_履歴タブに格納/従業員の値に挿入します ( 1, NULL )/コード> プレ>
クエリ 1 :
UPDATE employeesSET 給与履歴 =COALESCE( 給与履歴、給与リスト() ) MULTISET UNION ALL 給与リスト( 500 )WHERE id =1SELECT * FROM 従業員
プレ>
結果
:
<プレ>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500 |コード> プレ>
クエリ 2 :
UPDATE employeesSET 給与履歴 =COALESCE( 給与履歴、給与リスト() ) MULTISET UNION ALL 給与リスト( 700 )WHERE id =1SELECT * FROM 従業員
プレ>
結果
:
<プレ>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500,700 |コード> プレ>
クエリ 3 :
UPDATE employeesSET 給与履歴 =COALESCE( 給与履歴、給与リスト() ) MULTISET UNION ALL 給与リスト( 500 )WHERE id =1SELECT * FROM 従業員
プレ>
結果
:
<プレ>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500,700,500 |コード> プレ>