タイプがあります:
CREATE OR REPLACE TYPE something AS OBJECT(
name VARCHAR2(100),
nestedObjects objects
);
ここで、オブジェクトタイプは参照テーブルです。
CREATE TYPE objects IS TABLE OF REF object;
オブジェクトは次のとおりです。
CREATE OR REPLACE TYPE object AS OBJECT (
number NUMBER
);
次に、テーブルを作成します。
CREATE TABLE tab_something OF something
NESTED TABLE nestedObjects STORE AS tab_nestedObjects;
そして、何かのテーブルに含まれるオブジェクトから番号を選択したいので、次を試します:
SELECT ts.name, cursor(
select deref(object).number
from TABLE(ts.nestedObjects) object
) FROM tab_something ts;
また:
SELECT DEREF(object).number
FROM tab_something ts, TABLE(ts.nestedObjects) object;
しかし、うまくいきません。オラクルは「オブジェクト」識別子が無効であると言います。
ネストされたオブジェクトがオブジェクトで構成されている場合、参照を処理する必要がないため、うまく機能します。しかし、オブジェクト参照を指している場合は機能しません。どうすれば対処できますか?
手伝ってくれてありがとう!