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

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

صورة
- - - - -

Function أخري لإزالة المسافات الزيادة في نص


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

#1 هانى سند

هانى سند

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

  • المجموعة الماسية
  • 743 مشاركة

تاريخ المشاركة 24 February 2007 - 01:27 AM

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

إخواني الكرام

إستكمالا لاثراء المكتبة بالاكواد المفيدة اليكم نسخة أخري من function لازالة المسافات الزائدة من نص

الكود:


CREATE OR REPLACE FUNCTION single_space (
   p_data   VARCHAR2
)
   RETURN VARCHAR2 IS
   v_data   VARCHAR2 (2000) := REPLACE (LTRIM (RTRIM (p_data)), '  ', ' ');
--
BEGIN
   IF INSTR (v_data, '  ') > 0 THEN
	  RETURN single_space (v_data);
   ELSE
	  RETURN (v_data);
   END IF;
END single_space;


select single_space(:text)
from  dual 
/



غرض و كيفية الاستخدام :


تستخدم هذه الفانكشن لازالة المسافات الزائدة من النصوص في التقارير او السيليكت حتي لا يتم احتسابها كحرف ومن الممكن ان يتم نداؤها من جملة استعلام او كفانكشن عادية

شرح الfunction :

تقوم الفانكشن علي استخدام function replace and ltrim and rtrim
و function replace تقوم باستبدال كل المسافات المزدوجة في النصوص بمسافة واحدة و الrtrim and ltrim تقوم بقطع المسافات البادئة الموجودة بالكلمة

و تقوم الfunction اولا بفحص الكلمة اذا كان بها مسافات زائدة ام لا عن طريق استعمالfunction instr

الملف بالمرفقات

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

ملفات مرفقة



#2 sawsan_enad

sawsan_enad

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 17 September 2007 - 12:52 AM

Thanks