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

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

صورة
- - - - -

إستخدام WITH CHECK OPTION في DML


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

#1 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 01:07 PM

الاخوة الاعزاء: خلال قراءتي لكتب sql وجدت موضوع إستخدام WITH CHECK OPTION في DML ولكني لم افهمه وهذا هو الموضوع كما ورد بالضبط : -

Using a Subquery in an INSERT Statement
INSERT INTO
(SELECT employee_id, last_name,
email, hire_date, job_id, salary,
department_id
FROM employees
WHERE department_id = 50)
VALUES (99999, ’Taylor’, ’DTAYLOR’,
TO_DATE(’07-JUN-99’, ’DD-MON-RR’),
’ST_CLERK’, 5000, 50);

سؤالي الاول : كيف يتم استخدام where في عملية الinsert
****************************************************



Using the WITH CHECK OPTION Keyword
on DML Statements

INSERT INTO (SELECT employee_id, last_name, email,
hire_date, job_id, salary
FROM employees
WHERE department_id = 50 WITH CHECK OPTION)
VALUES (99998, ’Smith’, ’JSMITH’,
TO_DATE(’07-JUN-99’, ’DD-MON-RR’),
’ST_CLERK’, 5000);
INSERT INTO
*
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation


سؤالي الثاني هنا : ما معنى WITH CHECK OPTION

بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#2 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 02:39 PM



ارجو من الاخوة الاعزاء الاستعجال بالرد ولكم جزيل الشكر



بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#3 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 02:40 PM

السلام عليكم
اما عن WITH CHECK OPTION فهى تسخدم لتمنعك من اضافة صفوف ليست فى الاستعلام الفرعى والسبب فى هذا الخطا هو انك لم تقم باضافة رقم القسم المحدد فى جملة الشرط وهو 50
اتمنى اكون قدرت اوصل المعلومة

#4 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 02:42 PM

اما عن WHERE CLAUSE فهى تعنى انه لن يمكن اضافة بيانات جديدة الا فى القسم المحدد الذى هو 50
والسلام عليكم

#5 omar-alreyati

omar-alreyati

    عضو مميز

  • الأعضــاء
  • 596 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 02:50 PM



الاخ العزيز : قمت بإضافة department_id = 50 في جملة values كما في الشكل الاتي
INSERT INTO (SELECT employee_id, last_name, email,
hire_date, job_id, salary
FROM employees
WHERE department_id = 50 WITH CHECK OPTION)
VALUES (99998, 'Smith', 'JSMITH',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000,50)

ولكن ظهر لي خطأ(too many values)
ارجو منك التوضيح واكثر واذا كان لديك امثله على استخدام WITH CHECK OPTION ليتضح الموضوع اكثر


[/SIZE][/SIZE]

تم التعديل بواسطة omar-alreyati, 20 November 2005 - 02:58 PM.


بالله عليكم لا تنسوني من دعاءكم الصالح
لا تنسوا أهل غزة والعراق والمجاهدين من دعاءكم

#6 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 02:11 PM

السلام عليكم
هذا هو الكود بعد تعديله
INSERT INTO (SELECT empNO, Ename,
INSERT INTO (SELECT empNO, Ename,
hiredate, job, sal
FROM emp
WHERE dePTNO = 50 WITH CHECK OPTION)
VALUES (99998, 'Smith', 'JSMITH',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000,50)
ارجو يكون واضح

#7 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 02:17 PM

اسف انا نسخت الكود الاصلى الكود بعد التعديل هو
INSERT INTO (SELECT empNO, Ename,job,sal,deptno,
FROM emp
WHERE dePTNO = 50 WITH CHECK OPTION)
VALUES (99, 'Smith',
'ST_CLERK', 5000,50
مع ملاحظة انى حذفت التاريخ لان التاريخ عندى عربى والكود دة مجلرب على 9i

#8 m_dba

m_dba

    عضو نشط

  • الأعضــاء
  • 238 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Zaki
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 08:11 PM

WHERE dePTNO = 50 WITH CHECK OPTION
يعني ممنوع ادخال البيانات الا في الدائرة 50 واذا قمت بازالة
WITH CHECK OPTION
سوف يسمح لك بادخال اي رقم دائرة
امسح ذنوبك في دقيقتين - بس دقيقتين وشوف

http://www.shbab1.com/2minutes.htm

#9 الكاملي

الكاملي

    عضو

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

تاريخ المشاركة 27 November 2005 - 07:45 PM



الاخ العزيز : قمت بإضافة department_id = 50 في جملة values كما في الشكل الاتي
INSERT INTO (SELECT employee_id, last_name, email,
hire_date, job_id, salary
FROM employees
WHERE department_id = 50 WITH CHECK OPTION)
VALUES (99998, 'Smith', 'JSMITH',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000,50)

ولكن ظهر لي خطأ(too  many values)
ارجو منك التوضيح واكثر  واذا كان لديك امثله على استخدام WITH CHECK OPTION  ليتضح الموضوع اكثر


[/SIZE][/SIZE]

عرض المشاركة


أخي العزيز
too many values يعني أنك تحاول ادخال قيم أكثر من عدد الحقول
يعني إنت تحاول إن تدخل 7 قيم في جدول يحتوي على 6 حقول والذي لا يمكن فعله
 99998 : employee_id
 last_name : Smith
email :  JSMITH   
     hire_date:  07-JUN-99   

??????????   :  ST_CLERK 
         job_id : 5000
 Salary : 50


و إذا لم تستطع أن تتوصل للحل فالرجاء أن تكتب الكود التالي وتكتب لنا الناتج
Desc employees

تحياتي