2016-08-15 5 views
0

에서 값을 선택하는 방법 어떻게 내가 전화 번호 목록을 가져올 수 있도록 마지막 SELECT을 쓰는가 : 여기 </p> <p>내가 전화 번호에 대한 유형을 생성 한 11.2이 .... 직원과 나는 문법을 배우려고하고 싶지 않은 연관 될 오라클에서 작업 오라클 VARRAY

내 *는

CREATE TYPE AddressType AS OBJECT(streetNumber NUMBER(5), StreetName VARCHAR2(30), city VARCHAR2(20)); 
/
CREATE TYPE empName AS OBJECT(firstname VARCHAR2(10), middle VARCHAR2(10), lastname VARCHAR2(10)); 
/
CREATE TYPE PhoneNumbers AS OBJECT(phNumb NUMBER(10), numType VARCHAR2(10)); 
/
CREATE TYPE ContactNumbers AS VARRAY(5) OF PhoneNumbers; 
/

CREATE TABLE Workers(eid NUMBER(5), name empName, loc AddressType, contactNums ContactNumbers); 

INSERT INTO Workers VALUES(1, 
         empName('Ramos', null, 'Phil'), 
         AddressType(123, 'A Street', 'San Diego'), 
         ContactNumbers(
            PhoneNumbers(1234567890, 'cell'), 
            PhoneNumbers(2345678901, 'home') 
            ) 
        ); 


--Display all members of workers 
SELECT * FROM Workers; -- i get something here I'm ok with 

--Display all the names 
--SELECT (w.name.firstname||' '||w.name.middle||' '||w.name.lastname) as  "Name" FROM Workers w; --this works 

--Display their location 
--SELECT (w.loc.streetNumber||' '||w.loc.StreetName||', '||w.loc.city) as "Location" FROM Workers w; -- this works 

--Display their phone numbers 
SELECT (w.contactNums(1).phNumb||' <'||w.ContactNumbers(1).numType||'>') as "Phone Numbers" FROM Workers w; -- this line I can't figure out 

Q 파일 .SQL 있습니다 ... 콴 티코의 예언자 좋은 또는 나쁜 데이터베이스에 대한 비판? 당신은 VARRAY의 경우에 사용에게 TABLE 연산자를해야합니다

phone Numbers 
------------- 
1234567890 <cell> 
2345678901 <home> 

답변

2

:

SELECT e.phNumb||' <'||e.numType||'>' as "Phone Numbers" 
FROM Workers w, TABLE(w.contactNums) e; 

Phone Numbers          
----------------------------------------------------- 
1234567890 <cell>          
2345678901 <home>  

당신은에 대한 자세한 내용을 확인할 수 있습니다

나는 나의 출력이 같은 것을보고 싶지 Database Oject-Relational Developer's Guide.

+0

굉장! 그래서 우리는 배열과 조인을 수행해야합니다! 나는 더 많은 정보 (감사)를 위해 링크를 조사 할 것이다!! – fifamaniac04

+0

맞습니다. 그리고 VARRAY 구조체가 여러 개있는 경우 각각에 대해 TABLE 연산자가 필요합니다. – gvenzl