因此,我在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”:无效的标识符错误:
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用户定义类型的许多有用信息。我觉得我一定很想念东西。
问题来源于stack overflow
我相信Oracle需要嵌入式视图的别名:
SELECT v.t_id, v.height_breakdown.meters_feet FROM (SELECT t_id, get_distance_breakdown (h.height, h.unit_of_measure_id) height_breakdown FROM heights h) v;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。