次のスクリプトを検討してください。
CREATE TYPE t1 AS TABLE OF VARCHAR2(10);
/
CREATE TYPE t2 AS VARRAY(10) OF VARCHAR2(10);
/
CREATE TABLE t (
id NUMBER(10),
t1 t1,
t2 t2
)
NESTED TABLE t1 STORE AS t1_nt;
INSERT INTO t VALUES (1, NULL, NULL);
INSERT INTO t VALUES (2, t1('abc'), t2('abc'));
SELECT * FROM t WHERE 'abc' MEMBER OF t1;
SELECT * FROM t WHERE 'abc' MEMBER OF t2;
最後の 2 つのSELECT
ステートメントの出力は次のとおりです。
ID T1 T2
-------------------
2 [abc] [abc]
ORA-00932: inconsistent datatypes: expected UDT got
SQL_XQMZQAMSETXZLGIEEEEBUTFWF.T2
ドキュメントでは、この操作は VARRAY とネストされたテーブルで可能であると主張しています。
member_condition は、要素がネストされたテーブルのメンバーであるかどうかをテストするメンバーシップ条件です。expr が、指定されたネストした表または VARRAY のメンバーと等しい場合、戻り値は TRUE です。
私は何を間違っていますか?