
كيفية تقسيم الاسم الكامل ... الى الاسم الأول واسم الأب واسم الجد
#1
تاريخ المشاركة 11 May 2010 - 10:00 PM
انا عندي جدول فيه عمود اسمه name ادخل فيه الاسم عادي مثلا (محمد احمد محمد علي)
المشكلة انه في التقرير
الاسم مقسم بمعنى الاسم الاول : اسم الاب: اسم الجد: اللقب
كيف اقدر اطلع الاسم بهذه الطريقة في التقرير
مع العلم انه عندي داتا كثير جدا وما اقدر امسح
ارجووووووووو المساعدة جزاكم الله خير
#2
تاريخ المشاركة 12 May 2010 - 12:07 AM
هي ممكن بإنك تتحسس المسافات بين الكلمات باستخدام مثلا substr ولكن ممكن يقابلنا مشكلة
فرضا هناك اسم مثلا زي عبدالله هل ستكتب كده أم عبد الله يعني الاسماء ذات أكثر من كلمة
بسيطة ان شاء الله
اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه
اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين
#4
تاريخ المشاركة 12 May 2010 - 08:37 AM
السلام عليكم ورحمة الله وبركاته
اخى ممكن تشوف الحل ده ان شاء الله يساعدك فى مشكلتك .
مثال كامل للتجربة .
CREATE TABLE TMP(NAME VARCHAR2(200)); INSERT INTO TMP VALUES ('على محمود أحمد بكر'); INSERT INTO TMP VALUES ('محمد احمد محمد علي'); COMMIT; SELECT SUBSTR(NAME,1,INSTR(NAME,' ',1,1)-1 ) FIRST_NAME , SUBSTR(NAME,INSTR(NAME,' ',1,1)+1, INSTR(NAME,' ',1,2)-INSTR(NAME,' ',1,1) ) SECOND_NAME , SUBSTR(NAME,INSTR(NAME,' ',1,2)+1 , INSTR(NAME,' ',1,3)-INSTR(NAME,' ',1,2) ) THIRD_NAME , SUBSTR(NAME,INSTR(NAME,' ',1,3)+1 ) LAST_NAME FROM TMP;
#7
تاريخ المشاركة 13 May 2010 - 01:46 AM
الحل اللي كتبه abdou1984 هو الملاذ الوحيد
لكن تبقى مشكله الاسماء المركبه
و لتقليل حدوث هذه المشكله يجب ضبط البيانات قبل تنفيذ عملية التقسيم ويتم ذلك بإستبعاد كل شيء قد يؤدي الى احداث ضرر
مثل
عمل ريبلاس للمسافة في حال تكراراها الى مسافه واحد وعمد ريبليس لمعضم الاسماء المركبه اللتي ستخطر على بالك الى اسم مركب دون مسافات
كالتالي
نفرض ان الجدول اسمه a
وحقل الاسم اسمه n
يبدىء مشوارك الآن
update a set n=replace(n,' ',' '); update a set n=replace(n,' ',' '); update a set n=replace(n,'عبد الله','عبدالله'); update a set n=replace(n,'عبد الرحمن','عبدالرحمن'); update a set n=replace(n,'عبد الكريم','عبدالكريم'); update a set n=replace(n,'عبد الصمد','عبدالصمد');
قد تطول هذه العملية ولكن ستحصل في النهاية على بيانات يمكن تقسيمها بالإعتماد على الفراغ ان صح التعبير وستقلل بهذه الطريقة نسبة الخطأ
إذا أعجبك قولي فلا تقل شكـراً ...
بل قل الآتـي ::
اللهم اغفر له ولوالديه ولزوجته وابنائه ولأخوانه واخواته ولسائر المسلمين والمسلمات ما تقدم من ذنبهم وما تأخر..
وقِهم عذاب القبر وعذاب النار..
و أدخلهم الفردوس الأعلى مع الأنبياء والشهداء والصالحين ..
واجعل دعاءهم مستجاب في الدنيا والآخرة ..
اللـهم آميـن..اللـهم آميـن..اللـهم آميـن..
اخوكم جاد القرعان
الأردن- الطفيلة
مبرمج نظم
جامعة الطفيلة التقنية
vb6,vb.net,aspx with ajax,oracle 10g (sql,plsql,forms,reports) ,
oracle database administrator(DBA)
oracle application server administrator
web application administrator
jadquraan@yahoo.com
jadquraan@ttu.edu.jo
00962777935393
#8
تاريخ المشاركة 13 May 2010 - 09:27 AM
#11
تاريخ المشاركة 15 May 2010 - 11:48 PM
والى الأمام...
.Oracle E-Business Suite R12 HCM Certified Implementation Specialist
.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist
.Oracle Global Human Resources Cloud 2016 Certified Implementation Specialist
#14
تاريخ المشاركة 15 July 2010 - 11:40 AM
السلام عليكم
الاخ / Mr_CoBoL
لقد جربت الملف وهو يعمل بشكل جيد جدا
بارك الله فيك وجعله الله فى ميزان حسناتك
السلام عليكم ورحمة الله وبركاتة
اخي ENG_HOSSAM_WALLY
حل الاخ Mr_CoBoL جدا رائع لكن لو ادخلنا الاسم عبد الله,او عبد العزيز .........الخ سيظهر عبدكاسم والله كاسم تاني
هنا ستواجهنا مشكلة
نلاحظ انو الاسماء المركبة دائما تاتي بعد الاسم عبد
اذا ممكن نعدل الدالة عليها السطر هذا
:BLOCK3.NAM :=replace (:BLOCK3.NAM,'عبد ','عبد');
وتقبل تحاياي