لماذا لا أستطيع الرجوع إلى تعريف المستخدم حقل نوع عند استخدام الاستعلامات المتداخلة؟
سؤال
وهكذا لدي نوع المعرفة التالية في قاعدة بيانات أوراكل بلدي:
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);
وماذا يعطي؟ إذا لم يكن هناك بعض الأعمال حول بسيط وواضح لهذا ثم أن يهلك كثيرا ما يمكن أن تكون مفيدة حول أنواع يحددها المستخدم أوراكل. أشعر أنني يجب أن يكون في عداد المفقودين شيء.
المحلول
وأعتقد أوراكل يحتاج إلى الاسم المستعار للرأي في السطر:
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;
لا تنتمي إلى StackOverflow