الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تمرير الجداول كبارامترات الى الاجراءات

بدأه غمدان حمود في 31 أكتوبر 2008 · 1 رد · 1,258 مشاهدة · في قسم لغةالاجرائات Pl/sql
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف امرر اسم الجدول الى الاجراء ؟

الاجراء مثلا هو :

create or replace procedure p_add(v_table in out varchar2,v_fields varchar2)

as

begin

execute immediate ' insert into v_table values( v_fields) ';

end;

حيث البارامتر الاول لاسم الجدول والبارامتر الثاني لحقل الاسم الوحيد في الجدول

علما انني اعمل جملة الاستدعاء كما يلي

call p_add('person','ghamdan ')

يظهر لي الخطأ الذ ي لم اعرفه بعد التالي

call p_del('t1')

*

يوجد خطأ عند سطر 1:

ORA-06577: معلمة مخرجات ليس متغير ربط

فما هو الخطا وكيف اعمل الصح

من يعرف الجواب جزاه الله خير لا يبخل علي

#2

السلام عليكم ...

أخي العزيز هناك عدة أخطاء في الكود المكتوب منها تمرير اسم الجدول كسلسلة محرفية وهذا خطأ عندك تنفيذ dynamic sql ولكن يجب تمريره كبرميتر

الخطأ الثاني هو في جملة الإذخال يجب إحاطة القيمة المدخلة كسلسلة بـــ(') وإليك الحل

create or replace procedure pro_Insert_Row(TableName varchar2,ColValue varchar2) is

begin

execute immediate 'insert into '||TableName||' values '||'('||q'{'}'||ColValue||q'{'}'||')' ;

end;

/

سوف أرفقه بملف نصي بسبب عدم وضوحه عند لصقة هنا في الرد

على أية حل أريد أن أوضح سبب استخدام Quoto Operator q وذلك في الملف المرفق أيضاً

Insert_Row.zip

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…