0
我創造了我做只讀如何使只有
create view EMP_VU AS
select ename employee_name, deptno, empno
from emp
with READ ONLY CONSTRAINT EMP_VU_Read_ONLY;
如何使只有它不能讀取圖的圖不讀?
我得到這個錯誤,當我嘗試插入信息到視圖中,所以我假設這是我的問題,只讀。
SQL> insert into EMP_VU (employee_n,deptno, empno)
values (Stutte, 40, 8888);
values (Stutte, 40, 8888)
*
ERROR at line 2:
ORA-00984: column not allowed here
我做出了改變繼承人的新的錯誤,我得到
SQL> insert into EMP_VU (employee_name, deptno, empno)
values ('Stuttle', '40', '8888');
insert into EMP_VU (employee_name, deptno, empno)
*
ERROR at line 1:
ORA-00001: unique constraint (CIS605.EMP_EMPNO_PK) violated
繼承人的查看
SQL> select * from EMP_VU;
EMPLOYEE_N DEPTNO EMPNO
---------- ---------- ----------
KING 10 7839
BLAKE 30 7698
CLARK 10 7782
JONES 20 7566
MARTIN 30 7654
ALLEN 30 7499
TURNER 30 7844
JAMES 30 7900
WARD 30 7521
FORD 20 7902
SMITH 20 7369
EMPLOYEE_N DEPTNO EMPNO
---------- ---------- ----------
SCOTT 20 7788
ADAMS 20 7876
MILLER 10 7934
14 rows selected.
您仍然可以插入視圖。 – Randy
是的,我強烈建議視圖僅用於閱讀。但是,在SQL Server中,實際上可以將數據插入到視圖中,但前提是視圖引用了1個表。不確定Oracle是否屬於這種情況。無論如何,在這種情況下,問題似乎是「stutte」沒有用引號包裹,所以它認爲它是一個列,而不是一個字符串,因此錯誤「Column not allowed here」。 –
我的問題是如何使它不能只讀? – Randy