الانتقال إلى المحتوى
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 Read Only.... With Check Option

Featured Replies

بتاريخ:

من فضلكم كنت عاوز اعرف الفرق بين المثالين دول:

المثال الاول:

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


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

بتاريخ:

بص يا مان
انا بعمل with read only
كقيد على الفيو لما ارغب ان مفيش اى حد يضيف او يحذف او يضيف فى الفيو.
اما with check option
دة قيد على عمود معين يعنى محدش يقدر يعدل او يحذف او يضيف الا اللى انشاء هذا الفيو.

تم تعديل بواسطة mohooo81

  • بعد 4 أسابيع...
بتاريخ:
  • كاتب الموضوع

جزاك الله كل خير علي الرد

بس بالنسبة للمثال التانى

CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM employees WHERE department_id = 20
WITH CHECK OPTION CONSTRAINT empvu20_ck ;



هنا مش محدد العمود الذي تم عمل عليه WITH CHECK OPTION



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

بتاريخ:

بالنسبة للمثال الأول يمنع عمليلات DML على هذه الفيو..ويسمح بالاستعلام فقط حسب الشرط
بينما بالمثال الثاني يسمح بتعليمات الDML و لكن حسب الشرط

بتاريخ:

يمكنك فهم العملية عن طريق مجموعة الأمثلة التالية:

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;

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

جزاك الله كل خير علي الرد وعلي الامثلة

انا نفذت اول مثال

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")

بتاريخ:

هذا الخطأ بسبب الحقل Email حاطط عليه قيد NN و ما لك حاطو بالفيو..
يعني باختصار ... إذا أردت فيو تقبل عمليات DML يجب تضمين كل الحقول التي تحوي قيد NN بما فيهم PK

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

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

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

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

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

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.