2012-04-25 2 views
11

숨바꼭질들, : 다음은Oracle 11g의 오브젝트 유형 컬럼에서 선택하는 방법은 무엇입니까? 나는 두 개의 오라클 객체 다음 한

CREATE TABLE vehicles (
id NUMBER NOT NULL, 
vehicle car, 
PRIMARY KEY (id) 
); 

:

CREATE OR REPLACE TYPE truck UNDER car ( 
doors NUMBER, 
seats NUMBER 
); 

또한 테이블이 다음입니다 :

CREATE OR REPLACE TYPE car AS OBJECT( 
name VARCHAR(80) 
) NOT FINAL; 

또한, 또 다른 목적이있다 일부 데이터 :

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 

만 매개 변수가 차 개체에서 하나입니다.

참고로, 나는 당신과 같이 트럭으로 차량을 치료하기 위해 데이터베이스 엔진을 얻기 위해 TREAT 기능을 사용할 필요에 CentOS 6.2

건배, 보얀

답변

28

에 오라클 11g를 사용하고 있습니다 :

SELECT ID, TREAT(vehicle AS TRUCK).DOORS FROM VEHICLES 

공유하고 즐기십시오.

+1

완벽하게 작동합니다. :) – snijele

관련 문제