6.2 オブジェクト・ビューの定義
オブジェクト・ビューを使用すると、ユーザーに示すデータのみを表示できます。
オブジェクト・ビューを定義する手順は、次のとおりです。
オブジェクト型の属性が既存の表の列に正確に対応していないオブジェクト・ビューを更新するには、次の手順を実行する必要があることがあります。
アプリケーション・プログラムがオブジェクト・ビューのデータを更新するときに、Oracleに実行させるINSTEAD
OF
トリガー・プロシージャを作成します。「オブジェクト・ビューの操作」を参照してください。
これで、オブジェクト・ビューをオブジェクト表と同様に使用できます。
例6-1のSQL文は、各行がemployee_t
型のオブジェクトであるオブジェクト・ビューを定義しています。
例6-1 オブジェクト・ビューの作成
CREATE TABLE emp_table (
empnum NUMBER (5),
ename VARCHAR2 (20),
salary NUMBER (9,2),
job VARCHAR2 (20));
CREATE TYPE employee_t AS OBJECT (
empno NUMBER (5),
ename VARCHAR2 (20),
salary NUMBER (9,2),
job VARCHAR2 (20));
/
CREATE VIEW emp_view1 OF employee_t
WITH OBJECT IDENTIFIER (empno) AS
SELECT e.empnum, e.ename, e.salary, e.job
FROM emp_table e
WHERE job = 'Developer';
insert into emp_table values(1,'John',1000.00,'Architect');
insert into emp_table values(2,'Robert',900.00,'Developer');
insert into emp_table values(3,'James',2000.00,'Director');
select * from emp_view1;
EMPNO ENAME SALARY JOB
---------- -------------------- ---------- --------------------
2 Robert 900 Developer
リレーショナル表のempnum
列のデータにアクセスするには、オブジェクト型のempno
属性にアクセスします。