الانتقال إلى المحتوى
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.

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

Featured Replies

بتاريخ:

الاخوة الاعزاء: خلال قراءتي لكتب 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

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

 

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

 

بتاريخ:

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

بتاريخ:

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

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

 

الاخ العزيز : قمت بإضافة 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

بتاريخ:

السلام عليكم
هذا هو الكود بعد تعديله
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)
ارجو يكون واضح

بتاريخ:

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

بتاريخ:

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

بتاريخ:


الاخ العزيز : قمت بإضافة 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]

52132[/snapback]




أخي العزيز
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

تحياتي

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

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

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

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

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

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.