بتاريخ: 21 مايو 201411 سنة comment_250847 السلام عليكم ورحمة الله وبركاته لدي جدول يحتوي على عدة اعمدة يوجد فيها عمود الأسم في هذا العمود توجد اسماء اما بالانجليزي او بالعربي كيف يمكنني فلترة هذه الاسماء اما العربي او الانجليزي في جملة select علما باني استخدم pl/sql Developer شاكر لهذا المنتدى واعضائه ومشرفيه هذا الجهد الاكثر من رائع تقديم بلاغ
بتاريخ: 21 مايو 201411 سنة comment_250851 السلام عليكم جرب هذه الطريقة وعدل عليها ان احتجت: DECLARE CURSOR c IS SELECT full_name FROM per_all_people_f WHERE TRUNC (SYSDATE) BETWEEN effective_start_date AND effective_end_date; ch VARCHAR2 (200); BEGIN FOR rec IN c LOOP FOR i IN 1 .. LENGTH (rec.full_name) LOOP ch := SUBSTR (rec.full_name, i, 1); IF (ch NOT BETWEEN 'A' AND 'Z') OR (ch NOT BETWEEN 'a' AND 'z') THEN INSERT INTO temp_table1 (ename ) VALUES (rec.full_name ); END IF; END LOOP; END LOOP; END; تقديم بلاغ
بتاريخ: 21 مايو 201411 سنة كاتب الموضوع comment_250862 معقولة مافي احد احد واجهته المشكلة نفسها تقديم بلاغ
بتاريخ: 22 مايو 201411 سنة comment_250881 SELECT full_name FROM your_table WHERE full_name BETWEEN 'A' AND 'Z' SELECT full_name FROM your_table WHERE full_name BETWEEN 'ا' AND 'ي' تقديم بلاغ
بتاريخ: 22 مايو 201411 سنة comment_250884 السلام عليكم تم تعديل الكود السابق: CREATE TABLE temp_table1 ( ename VARCHAR2(100 BYTE) ) TABLESPACE apps_ts_tx_data PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 128 k NEXT 128 k MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING; DECLARE CURSOR c IS SELECT full_name FROM per_all_people_f WHERE TRUNC (SYSDATE) BETWEEN effective_start_date AND effective_end_date; ch VARCHAR2 (200); x NUMBER; BEGIN FOR rec IN c LOOP x := LENGTH (rec.full_name); ch := SUBSTR (rec.full_name, 1, x); IF (ch NOT BETWEEN 'A' AND 'Z') AND (ch NOT BETWEEN 'a' AND 'z') THEN INSERT INTO temp_table1 (ename ) VALUES (rec.full_name ); END IF; END LOOP; END; عدل على الكود حسب احتياجك حيث ان الكود سيقوم بادخال الاسماء العربي فقط على الجدول. ولعرض الأسماء بالانجليزي استخدم: SELECT full_name FROM per_all_people_f a WHERE TRUNC (SYSDATE) BETWEEN effective_start_date AND effective_end_date AND NOT EXISTS (SELECT 'x' FROM temp_table1 b WHERE b.ename = a.full_name) تقديم بلاغ
بتاريخ: 22 مايو 201411 سنة كاتب الموضوع comment_250887 جربت حل اخي حمودي وضبط 100% شاكر لكم جميعا جهودكم وعسى ربي يجعلها في موازيين حسناكم تقديم بلاغ
بتاريخ: 22 مايو 201411 سنة comment_250888 جيد. ولكن لا تنسى اضافة بقية الأحرف مثل: (أ، إ، آ، ى، ة). بالتوفيق. تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.