إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

كيفية تقسيم الاسم الكامل ... الى الاسم الأول واسم الأب واسم الجد


25 رد (ردود) على هذا الموضوع

#16 ahmed sobhy

ahmed sobhy

    عضو

  • الأعضــاء
  • 9 مشاركة
  • الاسم الأول:Ahmed
  • اسم العائلة:Sobhy
  • البـلـد: Country Flag

تاريخ المشاركة 28 September 2010 - 03:40 PM

SELECT SUBSTR ('Ahmed Sobhy Ahmed', 1, 5) first_name,
SUBSTR ('Ahmed Sobhy Ahmed', 7, 5) second_name,
SUBSTR ('Ahmed Sobhy Ahmed', 13, 5) last_name
FROM DUAL

#17 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 15 October 2010 - 04:03 PM

فكرة رائعة وممتازة ، ولكن لدي تحفظ أتمني الإستماع إليها جيداً دون زعل !!!

الإسم المركب (عبد الله - عبد السلام - عبد الحميد - عبد الرزاق - ...................... الي آخرة) ، ليس فقط هو الوحيد الإسم المركب !!!

لديك مثلاً شخص أعرفة جيداً سمي إسم إبنته الي (وحدة وادي النيل) ، وأبوها (محمد) ، وجدها (عبد الله) ........ تخيل ثلاثة أسماء في إسم واحد :)

وفية ناس تانية بتحب تسمي أسماء أولادها بأسماء الزعماء ، زي مثلاً (جمال عبد الناصر - الناصر صلاح الدين - أنور السادات - صدام حسين - ............ الي آخرة) :(

فـ (جمال عبد الناصر) ، و (الناصر صلاح الدين) ، ثلاثة أسماء في إسم واحد !!!!

ههههههههههههههههه ، وفية واحد مسمي إبنه أبو فرو ، أو أبو خاروف ، ههههههههههههههههههههههههههههه

طيب ما الحل في مثل هذه المشكلة !!!!


إذاً لا يصح إلا الصحيح !!!!

تحليل نظم قواعد البيانات بتقول أن إسم الإنسان يكون حقل مركب (الإسم - إسم الأب - إسم الجد - إسم العائلة أو اللقب) ، وكل حقل له حجم مناسب

إذاً فالحل المدرج حل مؤقت لحين تحويل النماذج والتقارير الخاصة بك أخ the past ... فالتعالج مشكلتك من جزورها حتي لا يظهر لك أي مشاكل أخري مستقبلاً





أما بخصوص فكرتك أخ Mr_CoBoL ، فهي فعلاً أكثر من رائعة وقد أستفدت منها كثييييييييييييييييييييييييييير جداً ، وجزاك الله كل خير .... والله أستفدت منها



بالتوفيق للجميع وجزاكم الله خير الجزاء

السلام عليكم ورحمة الله وبركاتة

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#18 w2a

w2a

    مشترك

  • الأعضــاء
  • 193 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 October 2010 - 08:55 AM

أخي الكريم Mr_CoBoL

ممكن شرح للكود وكيفية تطبيقه على جدول به 1500 موظف

#19 Mr_CoBoL

Mr_CoBoL

    مشترك

  • الأعضــاء
  • 135 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 October 2010 - 09:43 AM

أخي الكريم Mr_CoBoL

ممكن شرح للكود وكيفية تطبيقه على جدول به 1500 موظف


في الجزء الأول من الكود نقوم بعمل فلترة للأسم المراد تجزئته وذلك بإزالة المسافات الزائدة وتغيير حالة بعض الحروف مثل "أ" إلى "ا" ..
في الجزء الثاني من الكود وهو ...

begin
	e_x := 1 ;
	ss := 1;
For ss IN 1..LENGTH(:BLOCK3.nam) LOOP	
      L := substr(:BLOCK3.nam, ss, 1);
     	if e_x = 1 then w1 := w1 || L; end if;     
      if L  = ' ' then 	e_x := e_x + 1; end if;
      if e_x = 2 then w2 := w2 || l; end if;
      if e_x = 3 then w3 := w3 || l; end if;
      if e_x = 4 then w4 := w4 || l; end if;
      if e_x = 5 then w5 := w5 || l; end if;
      if e_x = 6 then w6 := w6 || l; end if;
      if e_x = 7 then w7 := w7 || l; end if;
     		end loop;

توجد متغيرات عملها كالتالي ...

ex هو المتغير المسئول عن عدد تقسيمات الاسم الكامل ... مثلا تريد تقسيم الاسم الى 4 او 5 تقسيمات في هذا المثال يمكن تقسيم الى 7 تقسيمات
ss يقوم بقراءة طوال الحقل المراد تقسيمه
ll يقوم بقراءة الحقل المراد تقيسمه حرف بـ حرف ثم يأتي دور نقل كل حرف من الحروف إلى ترتيبه حسب التقسيم أعلاه ...


يمكنك تطبيقه على أي جدول وأي عدد من الاسماء فقط قم بتغيير ما يلزم في الكود



أخي MMA وباقي الأخوة الاعزاء ...
ملحوظاتكم في مكانها الصحيح بالفعل توجد اسماء مركبة ولا يصلح لها الكود الموضح أعلاه لكنني أردت وضع تصوري ربما يساعد أخونا صاحب المشكلة


تحياتي

اخوكم
حسن الحسيني
{قُلْ إِنَّ صَلاَتِي وَنُسُكِي وَمَحْيَايَ وَمَمَاتِي لِلّهِ رَبِّ الْعَالَمِينَ }الأنعام162

#20 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 October 2010 - 10:20 AM

-- الجدول الذى سيتم العمل عليه
create table emp_full_names (id number (6), full_name varchar2(100),
first_name varchar2(25), second_name varchar2(25), third_name varchar2(25), fourth_name varchar2(25));

-- ازالة المسافات من يسار الاسم الكامل
 update emp_full_names
 set full_name = ltrim(full_name);
-- ازالة المسافات من يمين الاسم الكامل
 update emp_full_names
 set full_name = rtrim(full_name);
 -- ازالة المسافات المتجاروة من الاسم الكامل
 -- يتم التكرار حتى خمس مرات لضمان ازالة المسافات المتجاروة حتى لو كان 8 مسافات
 begin
 for i in 1..7 loop
 update emp_full_names
 set full_name = replace (full_name,'  ',' ');
 end loop;
 end;
 /
create or replace procedure separate_names
is
 v_position_1 number (3) :=0;
 v_position_2 number (3) :=0;
 v_position_3 number (3) :=0;
CURSOR      emp_names_cursor IS
           	SELECT  *
           	from emp_full_names
           	FOR UPDATE;
 BEGIN

FOR 	emp_record IN  emp_names_cursor     	LOOP
                v_position_1 := instr(emp_record.full_name,' ',1,1);-- مكان أول مسافة
                v_position_2 := instr(emp_record.full_name,' ',1,2);-- مكان ثانى مسافة
                v_position_3 := instr(emp_record.full_name,' ',1,3);-- مكان ثالث مسافة

           	UPDATE          emp_full_names
           	SET         	first_name      = substr(full_name,1,v_position_1),
                           	second_name 	= substr(full_name,v_position_1+1,v_position_2-v_position_1-1),
                           	third_name      = substr(full_name,v_position_2+1,v_position_3-v_position_2-1),
                           	fourth_name 	= substr(full_name,v_position_3+1)
           	WHERE       	CURRENT OF emp_names_cursor;
END LOOP;

END;
/


#21 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 22 October 2010 - 04:37 AM

أخي MMA وباقي الأخوة الاعزاء ...
ملحوظاتكم في مكانها الصحيح بالفعل توجد اسماء مركبة ولا يصلح لها الكود الموضح أعلاه لكنني أردت وضع تصوري ربما يساعد أخونا صاحب المشكلة


شكراً أخي الكريم علي سعة الصدر

ولكن إسمح لي إضافتاً لفكرتك الأكثر من الرائعة أن أترك فكرتي الخاصة لعل وعسي أن تفيد بعض الشيء !!!

فما رأيك لو جعلنا الوضع أكثر ديناميكية !!!

أنظر المثال المرفق

وبالتوفيق للجميع

ملفات مرفقة

  • ملف مرفق  SQL.zip   1.12كيلو   134 عدد مرات التحميل

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#22 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 22 October 2010 - 05:49 AM

وهذه طريقة أخري لنفس الفكرة

بالإضافة الي إستخدام الفكرة داخل PL/SQL كي يتم التعديل علي جدول محدد
حيث يعتمد كلياً علي Table فقط لا غير دون Object وهو الأسهل


شكراً لكم

وبالتوفيق للجميع

ملفات مرفقة

  • ملف مرفق  SQL.zip   1.37كيلو   96 عدد مرات التحميل

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#23 ramy_orcl

ramy_orcl

    عضو نشط

  • الأعضــاء
  • 356 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 06 February 2011 - 06:15 PM

مشكور اخى فى الله على الامثلة القيمة
خيركم من تعلم علم وعلمه
قال تعالى("وقل اعملوا فسيرى الله عملكم ورسوله و المؤمنون" ) صدق الله العظيم.

قال عليه الصلاة و السلام" :( اذا مات ابن ادم انقطع عمله الا من ثلاث، صدقة جارية أو علم ينتفع به أو ولد صالح يدعوا له ) صدق رسول الله صلى الله عليه وسلم.


اللهم ثبت قلبي ولساني على الصلاة وذكرك يارب يا عزيز يا غفار.
Ramy.orcl@Gamil.com
من موضوعاتى :
تحليل برنامج مبيعات ومشتريات ومخازن كام
شرح كيفية نقل بيانت من اكسيل الى قاعدة البيانات بواسطة برنامج Toad بالصور
مدونتي الخاصة ارجو زيارتها والاستفادة منها http://prosystem4.blogspot.com/

#24 scince

scince

    عضو مميز

  • فريق الإشراف
  • 1,118 مشاركة
  • الاسم الأول:ميهال
  • اسم العائلة:مهدي
  • البـلـد: Country Flag
  • الاهتمامات:البرمجة على vc++ و# c وAndroid للموبايل
    Arduino الإلكترونيات التفاعلية و المتحكمات الد قيقة ودمجها مع اوراكل في الجانب الالكتروني من الانطمة

تاريخ المشاركة 19 May 2011 - 12:31 AM

جزاكم الله خير الجزاء

م / ميهال مهدي - اليمن - عدن
من مواضيعي :

شاشة تكرار السطر الاخير من البلوك بعدد ما تريد من المرات

شاشة تقراء بيانات من Ms Excel الى جدول قاعدة بيانات أو الى بلوك في الشاشة مباشرة

رسال بيانات الى Ms Word 2007 لملف موجود مسبقا من شاشة ديلفوبر 6i باستدعاء دوال Vba

شاشة تعرض الماك ادرس و سيريال الماذربورد لمن يريدون تأمين برامجهم
شاشة تظهر الطابعة الافتراضية وتعين طابعة افتراضية انت تحدد اسمها

هل تعاني من مشكلة الاقواس في المسار
ارسال بيانات الى Ms Word 2007 من شاشة ديفلوبر 6i
شاشة إظهار Ip الخارجي والداخلي وعدة معلومات
استخدام اردوينو التحكم بدائرة كهربائية 220 فولت من خلال شاشة ديفلوبر اوراكل
شاشة قراءة رقم الهرديسك الفيزيائي بواسطة Dll على Dev 10g
قراءة بيانات الهرديسك بواسطة Activex
طريقة تشفير بيانات الهرديسك بواسطة Md5
شاشة التحكم بالمخرج Lpt بواسطة Dll على 10g و 6i
تطوير لمثال شاشة التحكم بالمخرج Lpt بواسطة Dll على 10G و 6I
شاشة تتحكم بألأزرار Caps_Lock و Num_Lock و Scrol_Locl بواسطة Dll
شاشة تحسس حالة زر Cpas Lock بواسطة Dll
شاشة تسجيل بشكل مرن التغيرات لجداول أي مستخدم وحفظها في جدول أنت تنشئه
مراقبة مستخدمين النظام انياً و تسجيل بيانات جلسة العمل
(مفاجئة)شاشة Template تم تجهيزها بواسطة الــ Object Group
إحضار بيانات من Msaccess الى Oracle
أداة تقوم بتغيير كلمة السر في أوراكل
الان يمكنك التحكم بتريجرات ازرار الوظائف Key Mapping F1-F9


#25 osama80

osama80

    مشترك

  • الأعضــاء
  • 84 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 16 March 2012 - 01:17 AM

مشكور كل من ساهم في هذه المشاركة بجد هذه مشكلة الكل يواجهها في بيانات الاسماء الرباعية تحديدا

#26 Ahmed Al-Bin Shaikh

Ahmed Al-Bin Shaikh

    مشترك

  • الأعضــاء
  • 78 مشاركة
  • الاسم الأول:احمد عبد الكريم خضر
  • اسم العائلة:ال بن الشيخ
  • البـلـد: Country Flag

تاريخ المشاركة 23 March 2014 - 02:31 AM

قد تكون داله concat  تنفع او هذه العلامه للربط ||

 

إن شاء الله تضبط معاك