皆さん、次の 2 つの Oracle オブジェクトがあります。
CREATE OR REPLACE TYPE car AS OBJECT(
name VARCHAR( 80 )
) NOT FINAL;
また、別のオブジェクトがあります。
CREATE OR REPLACE TYPE truck UNDER car (
doors NUMBER,
seats NUMBER
);
次の表もあります。
CREATE TABLE vehicles (
id NUMBER NOT NULL,
vehicle car,
PRIMARY KEY (id)
);
ここにいくつかのデータがあります:
INSERT INTO vehicles ( id, vehicle ) VALUES ( 1, truck( 'ford', 4, 4 ) );
INSERT INTO vehicles ( id, vehicle ) VALUES ( 2, truck( 'toyota', 4, 5 ) );
最後に、私の質問は次 のとおりです。車両テーブルの列からドアの数と座席の数のみを選択するにはどうすればよいですか?
私は次のことを試しましたが、うまくいきません:
SELECT v.vehicle.doors AS doors AS seats FROM vehicles v;
次のエラーが発生しました:
ORA-00904: "V"."VEHICLE"."DOORS": invalid identifier
エラーなしで取得できるパラメーターは、車のオブジェクトからのものだけです。
参考までに、CentOS 6.2 で Oracle 11g を使用しています。
乾杯、ボージャン