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

سؤال حول استخراج الاسماء

مغلق
بدأه sahara999 في 7 نوفمبر 2005 · 2 رد · 501 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي مشكلة تواجهني في برنامجي وهي انني اريد استخراج اسم العائلة من سجل الاسماء لطالب معين بمعرفة ان اسم العائلة هو اخر كلمة

في الاسم

مثلا

امل خالد محمد علي

المطلوب استخراج اسم علي

لدي فكرة ولكن لم استطع اكمالها وهي استخدام for loop

مع استخدام دالة length

ودالة substr

لقص الكلمة عند وجود الحرف ( ) وانقاص عدد الحروف المحذوفة واعادة loopباستخدام length جديد

ارجو ان يكون كلامي واضحا فهل اجد المساعدة ؟؟؟؟؟؟!!!!!!!

#2

أخ sahara999

إليك الحل:

declare
	a number;
	b varchar(100);
begin
   a:=instr(:block2.txt1,' ');
   b:=substr(:block2.txt1,a+1);
   while a<>0 loop
    a:=instr(b,' ');
     b:=substr(b,a+1);
   end loop;
   :block2.txt2:=b;
end;

حيث :block2.txt1 هو حيث يوجدالإسم كامل ويمكن إستبداله بإسم الحقل

و block2.txt2 هو ناتج العملية وهو إسم العائلة

تم تعديل هذه المشاركة بواسطة إسكندر في 9 نوفمبر 2005 في 12:44

#3

حل آخر

declare
	a number;
	b varchar(100);
begin
	a:=instr(:block2.txt1,' ');
	b:=substr(:block2.txt1,a+1);
  loop
   exit when a=0;
   a:=instr(b,' ');
   b:=substr(b,a+1);
	end loop;
	:block2.txt2:=b;
end;

تم تعديل هذه المشاركة بواسطة إسكندر في 9 نوفمبر 2005 في 12:44

هذا الموضوع مغلق.

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