gpt4 book ai didi

oracle - 如何从 Oracle 11g 中的对象类型列中进行 SELECT?

转载 作者:行者123 更新时间:2023-12-03 01:31:14 25 4
gpt4 key购买 nike

大家好,我有以下两个 Oracle 对象:

CREATE OR REPLACE TYPE car AS OBJECT( 
name VARCHAR( 80 )
) NOT FINAL;

而且,还有另一个对象:

CREATE OR REPLACE TYPE truck UNDER car ( 
doors NUMBER,
seats NUMBER
);

还有下表:

CREATE TABLE vehicles (
id NUMBER NOT NULL,
vehicle car,
PRIMARY KEY (id)
);

这是一些数据:

INSERT INTO vehicles ( id, vehicle ) VALUES ( 1, truck( 'ford', 4, 4 ) );
INSERT INTO vehicles ( id, vehicle ) VALUES ( 2, truck( 'toyota', 4, 5 ) );

最后我的问题是:如何从车辆表列中仅选择门数和座位数?

我尝试了以下操作,但不起作用:

SELECT v.vehicle.doors AS doors AS seats FROM vehicles v;

我收到以下错误:

ORA-00904: "V"."VEHICLE"."DOORS": invalid identifier

我可以毫无错误地获取的唯一参数是来自汽车对象的参数。

仅供引用,我在 CentOS 6.2 上使用 Oracle 11g

干杯,博扬

最佳答案

您需要使用 TREAT 函数让数据库引擎将 VEHICLE 视为 TRUCK,如下所示:

SELECT ID, TREAT(vehicle AS TRUCK).DOORS FROM VEHICLES

分享并享受。

关于oracle - 如何从 Oracle 11g 中的对象类型列中进行 SELECT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10318272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com