所以我的 oracle 数据库中有以下用户定义的类型:
CREATE OR REPLACE TYPE METRIC_IMPERIAL_DISTANCE AS OBJECT
(
METERS_FEET INTEGER,
CENTIMETERS_INCHES INTEGER,
FRACTION NUMBER
)
我可以执行以下操作:
SELECT t_id, get_distance_breakdown (h.height, h.unit_of_measure_id) height_breakdown
FROM heights h
乃至
SELECT t_id, get_distance_breakdown (h.height, h.unit_of_measure_id).meters_feet height_meters_feet
FROM heights h
但以下失败并出现 ORA-00904: "HEIGHT_BREAKDOWN"."METERS_FEET": invalid identifier 错误:
SELECT t_id, height_breakdown.meters_feet
FROM (SELECT t_id, get_distance_breakdown (h.height, h.unit_of_measure_id) height_breakdown
FROM heights h);
是什么赋予了?如果对此没有一些简单而明显的解决方法,那么这将大量减少对 oracle 的用户定义类型有用的东西。我觉得我一定是错过了什么。