Oracle - 如何从SQL查询中的对象获取数字?

时间:2016-01-30 18:58:36

标签: sql oracle

我有这个对象:

    CREATE TYPE CarType AS OBJECT(
        price_id NUMBER,
        quantity NUMBER.
        MAP MEMBER FUNCTION get_price_id RETURN NUMBER
        );

和这张表:

CREATE TABLE Cars(
   carid NUMBER PRIMARY KEY,
   carinfo cartype,
   CONSTRAINT car_fk FOREIGN KEY(carinfo.price_id) REFERENCES prices(price_id)
);

我希望通过SQL查询从Cars表中获取carid,price_id。

1 个答案:

答案 0 :(得分:1)

您必须记住对表的别名以及使用别名访问对象类型的列,否则会出现ORA-00904 invalid identifier错误。 此查询将起作用:

SELECT C.CARID, C.CARINFO.PRICE_ID, C.CARINFO.QUANTITY FROM CARS C;

但这不会:

SELECT CARS.CARID, CARS.CARINFO.PRICE_ID, CARS.CARINFO.QUANTITY FROM CARS;