لماذا لا أستطيع الرجوع إلى تعريف المستخدم حقل نوع عند استخدام الاستعلامات المتداخلة؟

StackOverflow https://stackoverflow.com/questions/266546

  •  06-07-2019
  •  | 
  •  

سؤال

وهكذا لدي نوع المعرفة التالية في قاعدة بيانات أوراكل بلدي:

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;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top