بتاريخ: 20 نوفمبر 200520 سنة comment_52109 الاخوة الاعزاء: خلال قراءتي لكتب 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 Keywordon DML StatementsINSERT 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 تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة كاتب الموضوع comment_52128 ارجو من الاخوة الاعزاء الاستعجال بالرد ولكم جزيل الشكر تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة comment_52129 السلام عليكماما عن WITH CHECK OPTION فهى تسخدم لتمنعك من اضافة صفوف ليست فى الاستعلام الفرعى والسبب فى هذا الخطا هو انك لم تقم باضافة رقم القسم المحدد فى جملة الشرط وهو 50اتمنى اكون قدرت اوصل المعلومة تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة comment_52130 اما عن WHERE CLAUSE فهى تعنى انه لن يمكن اضافة بيانات جديدة الا فى القسم المحدد الذى هو 50والسلام عليكم تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة كاتب الموضوع comment_52132 الاخ العزيز : قمت بإضافة 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] تم تعديل 20 نوفمبر 200520 سنة بواسطة omar-alreyati تقديم بلاغ
بتاريخ: 21 نوفمبر 200520 سنة comment_52248 السلام عليكم هذا هو الكود بعد تعديلهINSERT INTO (SELECT empNO, Ename,INSERT INTO (SELECT empNO, Ename,hiredate, job, salFROM empWHERE dePTNO = 50 WITH CHECK OPTION)VALUES (99998, 'Smith', 'JSMITH',TO_DATE('07-JUN-99', 'DD-MON-RR'),'ST_CLERK', 5000,50)ارجو يكون واضح تقديم بلاغ
بتاريخ: 21 نوفمبر 200520 سنة comment_52249 اسف انا نسخت الكود الاصلى الكود بعد التعديل هو INSERT INTO (SELECT empNO, Ename,job,sal,deptno, FROM empWHERE dePTNO = 50 WITH CHECK OPTION)VALUES (99, 'Smith', 'ST_CLERK', 5000,50مع ملاحظة انى حذفت التاريخ لان التاريخ عندى عربى والكود دة مجلرب على 9i تقديم بلاغ
بتاريخ: 21 نوفمبر 200520 سنة comment_52278 WHERE dePTNO = 50 WITH CHECK OPTIONيعني ممنوع ادخال البيانات الا في الدائرة 50 واذا قمت بازالة WITH CHECK OPTIONسوف يسمح لك بادخال اي رقم دائرة تقديم بلاغ
بتاريخ: 27 نوفمبر 200520 سنة comment_52655 الاخ العزيز : قمت بإضافة department_id = 50 في جملة values كما في الشكل الاتي INSERT INTO (SELECT employee_id, last_name, email,hire_date, job_id, salaryFROM employeesWHERE 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تحياتي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.