Sql Oracle使用表(…)和对象类型缺少右括号

Sql Oracle使用表(…)和对象类型缺少右括号,sql,oracle,Sql,Oracle,我试图在嵌套表中获取元组的引用,但得到一个错误 ORA-00907: missing right parenthesis 这就是我正在做的: SELECT REF(VALUE(a)) FROM CITY c, TABLE(c.airports) a WHERE a.code = 'LHR'; 我定义的类型: CREATE TYPE AirportType AS OBJECT( Code varchar2(10), Size int ); CREATE TYPE Airpor

我试图在嵌套表中获取元组的引用,但得到一个错误

ORA-00907: missing right parenthesis
这就是我正在做的:

SELECT REF(VALUE(a))
FROM CITY c, TABLE(c.airports) a
WHERE a.code = 'LHR';
我定义的类型:

CREATE TYPE AirportType AS OBJECT(
    Code varchar2(10),
    Size int
);

CREATE TYPE AirportListType AS TABLE OF AirportType;

CREATE TYPE CityType AS OBJECT(
    Name varchar2(30),
    Airports AirportListType
);
以下是创建城市表的方法:

CREATE TABLE CITY OF CityType
    NESTED TABLE Airports STORE AS Airport_Tab;
插入的示例如下:

INSERT INTO CITY VALUES(CityType('London', AirportListType(AirportType('LHR', 999))));

您不能在模型中引用单个机场。要引用对象,需要对象标识符。嵌套表不能有OID。请参阅中有关<代码>oid_条款的限制

下面是一个模型示例,该模型允许引用单个机场

模型 数据 询问 结果
编辑您的问题并添加您使用的
create table city
。以及您插入的记录(示例)。@KaushikNayak完成。您希望在输出中看到什么?ChrisSaxon只是引用,这不是我真正的查询,但我需要获取引用以在更复杂的查询中使用它。为什么需要引用?价值观本身有什么问题?
CREATE TYPE AirportType AS OBJECT(
   code     VARCHAR2(10),
   the_size INTEGER
);
/

CREATE TYPE AirportListType AS TABLE OF REF AirportType;
/

CREATE TYPE CityType AS OBJECT(
   name     VARCHAR2(30),
   airports AirportListType
);
/

CREATE TABLE airports of AirportType (code PRIMARY KEY);


CREATE TABLE city OF CityType
    NESTED TABLE airports STORE AS city_airports;
INSERT INTO airports VALUES(AirportType('LHR', 999));
INSERT INTO airports VALUES(AirportType('LCY', 888));
INSERT INTO airports VALUES(AirportType('ZHR', 777));
INSERT INTO city VALUES(
   CityType(
      'London', 
      AirportListType(
         (select ref(a) from airports a where code = 'LHR'),
         (select ref(a) from airports a where code = 'LCY')
      )
   )
);
COMMIT;
SELECT a.column_value AS airport_ref
  FROM city c, table(c.airports) a
 WHERE deref(a.column_value).code = 'LHR';
AIRPORT_REF                                                                     
--------------------------------------------------------------------------------
2202086CEE381BDAB100DFE053020011AC9C4C6CEE381BDAAF00DFE053020011AC9C4C