بتاريخ: 2 فبراير 200917 سنة comment_148334 من فضلكم كنت عاوز اعرف الفرق بين المثالين دول:المثال الاول: CREATE OR REPLACE VIEW empvu10 (employee_number, employee_name, job_title) AS SELECT employee_id, last_name, job_id FROM employees WHERE department_id = 10 WITH READ ONLY; المثال الثانى: CREATE OR REPLACE VIEW empvu20 AS SELECT * FROM employees WHERE department_id = 20 WITH CHECK OPTION CONSTRAINT empvu20_ck ; يعنى باختصار كنت عاوز اعرف الفرق بينWITH READ ONLYوWITH CHECK OPTION CONSTRAINT empvu20_ckوجزاكم الله كل خير....................... تقديم بلاغ
بتاريخ: 2 فبراير 200917 سنة comment_148348 بص يا مانانا بعمل with read onlyكقيد على الفيو لما ارغب ان مفيش اى حد يضيف او يحذف او يضيف فى الفيو.اما with check optionدة قيد على عمود معين يعنى محدش يقدر يعدل او يحذف او يضيف الا اللى انشاء هذا الفيو. تم تعديل 2 فبراير 200917 سنة بواسطة mohooo81 تقديم بلاغ
بتاريخ: 28 فبراير 200916 سنة كاتب الموضوع comment_150153 جزاك الله كل خير علي الردبس بالنسبة للمثال التانى CREATE OR REPLACE VIEW empvu20 AS SELECT * FROM employees WHERE department_id = 20 WITH CHECK OPTION CONSTRAINT empvu20_ck ; هنا مش محدد العمود الذي تم عمل عليه WITH CHECK OPTIONوجزاكم الله كل خير تقديم بلاغ
بتاريخ: 28 فبراير 200916 سنة comment_150159 بالنسبة للمثال الأول يمنع عمليلات DML على هذه الفيو..ويسمح بالاستعلام فقط حسب الشرطبينما بالمثال الثاني يسمح بتعليمات الDML و لكن حسب الشرط تقديم بلاغ
بتاريخ: 28 فبراير 200916 سنة comment_150164 يمكنك فهم العملية عن طريق مجموعة الأمثلة التالية: SQL> create or replace view v1 (Empoyee_No,Employee_Name,Department_ID) as 2 select empno,ename,deptno from emp 3 where 4 deptno in (10,20); View created. SQL> select * from v1; EMPOYEE_NO EMPLOYEE_N DEPARTMENT_ID ---------- ---------- ------------- 7369 SMITH 20 7566 JONES 20 7782 CLARK 10 7788 SCOTT 20 7839 KING 10 7876 ADAMS 20 7902 FORD 20 7934 MILLER 10 8 rows selected. SQL> insert into v1 values(1001,'hassan',30); 1 row created. 1 create or replace view v2 (Empoyee_No,Employee_Name,Department_ID) as 2 select empno,ename,deptno from emp 3 where 4 deptno in (10,20) 5* with check option SQL> / View created. SQL> select * from v2; EMPOYEE_NO EMPLOYEE_N DEPARTMENT_ID ---------- ---------- ------------- 7369 SMITH 20 7566 JONES 20 7782 CLARK 10 7788 SCOTT 20 7839 KING 10 7876 ADAMS 20 7902 FORD 20 7934 MILLER 10 8 rows selected. SQL> insert into v2 values(1002,'hassan',30); insert into v2 values(1002,'hassan',30) * ERROR at line 1: ORA-01402: view WITH CHECK OPTION where-clause violation 1 create or replace view v3 (Empoyee_No,Employee_Name,Department_ID) as 2 select empno,ename,deptno from emp 3 where 4 deptno in (10,20) 5* with read only SQL> / View created. SQL> select * from v3; EMPOYEE_NO EMPLOYEE_N DEPARTMENT_ID ---------- ---------- ------------- 7369 SMITH 20 7566 JONES 20 7782 CLARK 10 7788 SCOTT 20 7839 KING 10 7876 ADAMS 20 7902 FORD 20 7934 MILLER 10 8 rows selected. SQL> insert into v3 values (1002,'hassan',30); insert into v3 values (1002,'hassan',30) * ERROR at line 1: ORA-01733: virtual column not allowed here <<<< create or replace view v2 (Empoyee_No,Employee_Name,Department_ID) as select empno,ename,deptno from emp; هذا يكافىء تماماً لاحظ الـAlias create or replace view v2 as select empno Empoyee_No,ename Employee_Name ,deptno Department_ID from emp; تقديم بلاغ
بتاريخ: 28 فبراير 200916 سنة كاتب الموضوع comment_150174 جزاك الله كل خير علي الرد وعلي الامثلة انا نفذت اول مثال CREATE OR REPLACE VIEW v1(employee_no, employee_name, department_id) AS SELECT employee_id, last_name, department_id FROM employees WHERE department_id IN (10, 20); تمام وبعدين عملت المثال التالت insert into v1 values(1001,'hassan',30); بس طلعتلي ال error دي SQL> insert into v1 values(1001,'hassan',30); insert into v1 values(1001,'hassan',30) * ERROR at line 1: ORA-01400: cannot insert NULL into ("HR"."EMPLOYEES"."EMAIL") تقديم بلاغ
بتاريخ: 1 مارس 200916 سنة comment_150205 هذا الخطأ بسبب الحقل Email حاطط عليه قيد NN و ما لك حاطو بالفيو..يعني باختصار ... إذا أردت فيو تقبل عمليات DML يجب تضمين كل الحقول التي تحوي قيد NN بما فيهم PK تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.