بتاريخ: 24 فبراير 200817 سنة comment_123177 أرقام الموبيل عندنا فى مصر بتكون مكونة من عشرة ارقام و اول رقمين فيهم لازم يكونوا 01 ذى كده :-012923123901092837460168483873و هكذا ......انا دلوقتى عاوز اعمل جدول يكون فيه حقل الموبيل كالاتى :-1 - يكتب فيه الارقام فقط ( اى لا يمكن ادخال الاحرف فى هذا الحقل نهائياً )2 - يكون عشرة ارقام فقط ، لا اكثر و لا أقل3 - اول رقميين لازم يكونوا ( 01 )ده الكود اللى قدرت اتوصله لحد دلوقتى ..... بس انا لسه مش مقتنع به :- create table mobile ( Mobile varchar2(10) not null unique , check (length(mobile)='10' and substr(mobile,1,2)='01') ); مشكلة الكود انه مش بيمنع ادخال الحروف انا منتظر حل لهذه المشكلة و شكراً تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة comment_123179 هاني هل أنت تريد أن تقوم بهذا من خلال تريجرات الفورمز أم أنك تريد أن تقوم بها من خلال تريجرات الداتا بيز تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة كاتب الموضوع comment_123181 from oracle Database 11g ........ NOT from forms تم تعديل 25 فبراير 200817 سنة بواسطة hanyfreedom تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة comment_123187 السلام عليكم؟؟أخي هاني..ممكن تجعل نوع الحقل number بدل من أن يكون varchar2 وبعد ذلك لا يقبل الحقل إلا الأرقااااام فقط؟وإن شاء الله تضبط معاك تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة كاتب الموضوع comment_123206 ايه اخبارك ....... والله ليك وحشهلا تنفع هذه الحيلة لأن الاوراكل لن يعتبر الصفر الذى فى اليسار 0129231143 ذو قيمة و بذلك سيعتبر الرقم الذى لديك تسعة أرقام فقط و بذلك لن تتم عملية ال insertشكراً لتعبك ..... و مازلت منتظر المزيد من المقترحات تم تعديل 25 فبراير 200817 سنة بواسطة hanyfreedom تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة comment_123249 السلام عليكم ورحمة الله وبركاته بما أن أي خانة فقط تقبل الأرقام التالية 0 1 2 3 4 5 6 7 8 9 فالحل هنا create table mobile ( Mobile varchar2(10) not null unique , check (length(mobile)='10' and substr(mobile,1,2)='01' and substr(mobile,3,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,4,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,5,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,6,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,7,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,8,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,9,1) in ('0','1','2','3','4','5','6','7','8','9') and substr(mobile,10,1) in ('0','1','2','3','4','5','6','7','8','9')) ); فقط دعواتكم أخوك شبيكه ربيع تم تعديل 25 فبراير 200817 سنة بواسطة Amgad تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة كاتب الموضوع comment_123251 أخى العزبز شبيكه ربيع .... بعد تجريب كودك ، طلع فعلاً اجابتك صحيحةشكراً أخى جزيل الشكر و بارك الله فيك تقديم بلاغ
بتاريخ: 25 فبراير 200817 سنة كاتب الموضوع comment_123253 فقط حبيت ان أضيف كودان اخران يقوموا بما اريده فى حقل الموبيل :-الكود الاول :- create table mobile ( Mobile varchar2(10) not null unique , check (length(mobile)=10 and to_number(mobile) between 100000000 and 199999999) ); الكود الثانى :- create table mobile ( Mobile varchar2(10) not null unique, constraint length_con check (length(mobile)='10') , constraint start_with_con check (substr(mobile,1,2)='01'), constraint num_only_con check ( length(trim(translate(mobile,'0123456789',' '))) = 0) ); و بالطبع كود اخى العزيز (( شبيكه ربيع )) صحيح تماماً ، انا بس حبيت اضيف افكار جديدة علشان يستفيد منها الجميع .و شكراً تقديم بلاغ
بتاريخ: 26 فبراير 200817 سنة comment_123293 السلام عليكم ورحمة الله وبركاته. دي طريقه أخرى ممكن أن تحقق المطلوب أيضا وهى للتنويع والزياده والطرق السابقه ممتازه جدا : create or replace trigger for_mobile before insert or update of mobile on mobile for each row declare n number(3); counter number:=1; b char(1); begin n:=length(:new.mobile); if n<10 then raise_application_error(-20110,'Your phone number should be ten digits.'); end if; if substr(:new.mobile,1,2)<> '01' then raise_application_error(-20111,'Your phone number should begin with 01.'); end if; loop b:=substr(:new.mobile,counter,1); if b not in('0','1','2','3','4','5','6','7','8','9') then raise_application_error(-20555,'You are only allowed to insert numbers.'); end if; counter:=counter+1; exit when counter>n; end loop; end; / تقديم بلاغ
بتاريخ: 26 فبراير 200817 سنة comment_123330 السلام عليكم ورحمة الله وبركاته انا كان عندي اضافه على اجابات الاخوه الاعضاء في جزئيه ادخال ارقام فقط CREATE TABLE PHONE (MOBAIL VARCHAR2(10) CONSTRAINT ABCD CHECK (MOBAIL BETWEEN 0 AND 9999999999)) او طريقه تانيه CONSTRAINTS CHECK (MOBAIL=TO_NUMBER(MOBAIL)); تقديم بلاغ
بتاريخ: 28 فبراير 200817 سنة comment_123536 السلام عليكم ورحمة الله وبركاته.فكرتك أروع يا أخ Lo2lo2aوطريقتك مختصرة ومزيدا من التقدم وشكر للجميع والشكر الخاص لصحاب الفكرة هانيوجزاكم الله خيرا تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.