الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

هل من الممكن إنشاء تيبل يتكون من رو واحد

Featured Replies

بتاريخ:

اريد ان ابنى تيبل يتكون من صف واحد فقط لا غير و لا يستطيع اليوزر ان يدخل صف اخر غيره


هل هذا ممكن ؟؟

بتاريخ:

تحياتي للجميع

يوجد العديد من الطرق ومنها ان تضع عن ماحولتها الاضافة مثلاً

select count(code) into :text1. from emp;

if :text = 1 then
message 'لايمكن اضافة اكثر من سجل';
....
...

بتاريخ:
  • كاتب الموضوع

شكرا اخى توفى
على هذا الكود الفعال و لاكن كنت اسئل إن كان يمكن هذا عند بناء التيبول على الداتا بيز ام لا
على اى حال هذا الكود يفى بالغرض و انا اشكرك مره اخرى يا اخى العزيز



اخوك عمرو

بتاريخ:

الاخ عمرو جرب هذا الكود انا جربته و زبط :
اعمل trigger على التيبل كما يلي :

create or replace trigger bef_ins
before insert on khalid
declare
tot number ;
begin select count(*)
  into tot from khalid; if tot >= 1 then
   raise_application_error(-20222,'You cants insert more than one record 

at this table') ;
end if ;
end ;
/


بحيث khalid هو اسم التيبل هنا
عند اضافة اكثر من record يعطي ال error التالي :

ORA-20222: You cants insert more than one record at this table
ORA-06512: at "UNIV.BEF_INS", line 8
ORA-04088: error during execution of trigger 'UNIV.BEF_INS'

بتاريخ:

مشكور اخي خالد علي هذا الكود
ولكن الا تعتقد انه لن يعمل بسبب table mutation
حيث انك تقوم بعمل سلكت من جدول يتم الادخال به
وشيئ اخر هذا الزناد علي ليس علي مستوي كل صف
معني ذلك انه من اول مره يمكن عمل ادخال لعدد لانهائي من الصفوف بدون ان يتحرك الزناد
لانه يعمل مره واحده فقط عند ارسال مجموعة جمل insert وليس for each row
الحل يكمن في وضع ريكور واحد فقط في الجدول ثم كتابة زناد يمنع عملية الادخال او الديليت
حيث يسمح ب التعديل فقط

create or replace trigger bef_ins
before  inaert on khalid
for each row
raise_application_error(-20222,'You cants insert in this table') ;
end;


create or replace trigger bef_del
before  delete on khalid
for each row
raise_application_error(-20222,'You cants delete from this table') ;
end;


او استخدام if inserting , if deleting , في تريجر واحد
او تريجر واحد علي مستوي الادخال و المسح
الحلول كثيرة
مع تمنياتي بالتوفيق

بتاريخ:
  • كاتب الموضوع

مشكورين إخوانى على هذه الإجابه
و انا اعتقد ان الكود الثانى يمشى مع إحتياجاتى

اشكركم و جزاكم الله خيرا


اخوكم عمرو

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.