سؤال

أقوم بتحويل إجراءات SQL Server المخزنة إلى Oracle. في SQL Server ، يمكنك إدراجها في جدول من استدعاء دالة.

هنا هو خادم SQL:

INSERT INTO t_tmpl( rel_class_code, rel_side, template_id, template_name, template_desc )
SELECT rel_class_code, ls_rel_side, obj_id, name, description
FROM etmf_get_templates_for_rel( ps_rel_class_code, ls_rel_side, pi_called_by )

رسالة الخطأ التي أحصل عليها عند تحويل هذا إلى Oracle هي "PL/SQL: ORA-00933: أمر SQL لم ينته بشكل صحيح".

هل يعرف أي شخص كيف يجب أن يبدو هذا البيان في أوراكل؟

شكرًا!!!

هل كانت مفيدة؟

المحلول

إذا أدت وظيفتك إلى إرجاع مجموعة نتيجة أنابيب ، فأنت بحاجة فقط إلى وضع الوظيفة داخل الجدول على النحو التالي:

INSERT INTO t_tmpl
   (rel_class_code, rel_side, template_id, template_name, template_desc)
   SELECT rel_class_code, ls_rel_side, obj_id, name, description
   FROM TABLE(
      etmf_get_templates_for_rel(ps_rel_class_code, ls_rel_side, pi_called_by)
      )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top