質問

私は、以下の諸表Oracle11g:

CREATE TYPE person AS OBJECT (
    name VARCHAR2(10),
    age NUMBER
);

CREATE TYPE person_varray AS VARRAY(5) OF person;

CREATE TABLE people (
    somePeople person_varray
)

たいのですが名前を選択した値人体

SELECT somePeople(person(name)) FROM people

感謝

役に立ちましたか?

解決

してください:

  1. 何をやっているかどう考えています。もう完全に違反する関係の原則は、使い終わるオブジェクト/タイプシステムには、Oracleができない場合がございますの変更まれていない。最高使用などの見用のSQL型(PL/SQL型は、基本的にできるキャストは、refカーソルバのためのパイプラインの機能

  2. まunnestの前にコレクションを照会できますので関係のような:

    選択から を選択する。* 名人からのP、テーブル(P.SOME_PEOPLE)SP)

ただすべての行に対して、ありがとうございます。ものではないお客様の仕様(ようPERSON_ID属性)を制限するために行った。

オラクルのアプリケーション開発ガイド-オブジェクト関係の特徴についてすべてのことがさらに深め、一例です。

他のヒント

To insert query:-

insert into people values (
person_varray(person('Ram','24'))
);

To select :-

select * from people;

SELECT NAME FROM (SELECT SP.* FROM PEOPLE P, TABLE(P.somePeople) SP)

While inserting a row into people table use constructor of 
person_varray and then the constructor 
of person type for each project.
The above INSERT command 
creates a single row in people table.

 select somePeople from people ;

 person(NAME, age) 
---------------------------------------------------
person_varray(person('Ram', 1), 

To update the  query will be:-

update people 
set somePeople =  
           person_varray 
           (  
               person('SaAM','23')  
           ) 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top