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

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

صورة
- - - - -

ما هى القيود الواجب عملها على حقل الموبيل ؟


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

#1 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 25 February 2008 - 02:33 AM

أرقام الموبيل عندنا فى مصر بتكون مكونة من عشرة ارقام و اول رقمين فيهم لازم يكونوا 01 ذى كده :-

0129231239
0109283746
0168483873

و هكذا ......

انا دلوقتى عاوز اعمل جدول يكون فيه حقل الموبيل كالاتى :-

1 - يكتب فيه الارقام فقط ( اى لا يمكن ادخال الاحرف فى هذا الحقل نهائياً )
2 - يكون عشرة ارقام فقط ، لا اكثر و لا أقل
3 - اول رقميين لازم يكونوا ( 01 )

ده الكود اللى قدرت اتوصله لحد دلوقتى ..... بس انا لسه مش مقتنع به :-

create table mobile ( Mobile varchar2(10) not null unique , check (length(mobile)='10' and substr(mobile,1,2)='01') );


مشكلة الكود انه مش بيمنع ادخال الحروف

انا منتظر حل لهذه المشكلة و شكراً

#2 weloooo

weloooo

    مشرف

  • فريق الإشراف
  • 249 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 February 2008 - 03:02 AM

هاني هل أنت تريد أن تقوم بهذا من خلال تريجرات الفورمز أم أنك تريد أن تقوم بها من خلال تريجرات الداتا بيز

أحمد يحيى


Oracle Apps Senior Technical Consultant


#3 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 25 February 2008 - 03:27 AM

from oracle Database 11g ........ NOT from forms


تم التعديل بواسطة hanyfreedom, 25 February 2008 - 03:27 AM.


#4 المبرمج الصاعد

المبرمج الصاعد

    مشرف عام

  • الفريق الإداري
  • 715 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:بكل جديد من التقنية..

تاريخ المشاركة 25 February 2008 - 07:54 AM

السلام عليكم؟؟

أخي هاني..

ممكن تجعل نوع الحقل number بدل من أن يكون varchar2
وبعد ذلك لا يقبل الحقل إلا الأرقااااام فقط؟

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

IT Manager


#5 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 25 February 2008 - 01:03 PM

ايه اخبارك ....... والله ليك وحشه

لا تنفع هذه الحيلة لأن الاوراكل لن يعتبر الصفر الذى فى اليسار 0129231143
ذو قيمة و بذلك سيعتبر الرقم الذى لديك تسعة أرقام فقط و بذلك لن تتم عملية ال insert

شكراً لتعبك ..... و مازلت منتظر المزيد من المقترحات <_<

تم التعديل بواسطة hanyfreedom, 25 February 2008 - 01:05 PM.


#6 Shibeika

Shibeika

    عضو نشط

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

تاريخ المشاركة 25 February 2008 - 05:11 PM

السلام عليكم ورحمة الله وبركاته
بما أن أي خانة فقط تقبل الأرقام التالية 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')) );

فقط دعواتكم
أخوك شبيكه ربيع

تم التعديل بواسطة Amgad, 26 February 2008 - 12:25 AM.


#7 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 25 February 2008 - 05:29 PM

أخى العزبز شبيكه ربيع .... بعد تجريب كودك ، طلع فعلاً اجابتك صحيحة
شكراً أخى جزيل الشكر و بارك الله فيك

#8 hanyfreedom

hanyfreedom

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

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 25 February 2008 - 06:36 PM

فقط حبيت ان أضيف كودان اخران يقوموا بما اريده فى حقل الموبيل :-

الكود الاول :-

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)
);


و بالطبع كود اخى العزيز (( شبيكه ربيع )) صحيح تماماً ،
انا بس حبيت اضيف افكار جديدة علشان يستفيد منها الجميع .

و شكراً

#9 weloooo

weloooo

    مشرف

  • فريق الإشراف
  • 249 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 26 February 2008 - 05:34 AM

السلام عليكم ورحمة الله وبركاته. دي طريقه أخرى ممكن أن تحقق المطلوب أيضا وهى للتنويع والزياده والطرق السابقه ممتازه جدا :

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;
/

أحمد يحيى


Oracle Apps Senior Technical Consultant


#10 lo2lo2a

lo2lo2a

    عضو

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

تاريخ المشاركة 26 February 2008 - 10:57 AM

السلام عليكم ورحمة الله وبركاته
انا كان عندي اضافه على اجابات الاخوه الاعضاء في جزئيه ادخال ارقام فقط

CREATE TABLE PHONE (MOBAIL VARCHAR2(10)CONSTRAINT ABCD CHECK (MOBAIL BETWEEN 0 AND 9999999999))
او طريقه تانيه
CONSTRAINTS CHECK (MOBAIL=TO_NUMBER(MOBAIL));


نعيب زماننا والعيب فينا وما لزماننا عيب سوانا

#11 Shibeika

Shibeika

    عضو نشط

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

تاريخ المشاركة 28 February 2008 - 11:44 AM

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