權限問題:
首先應確認登錄用戶有無創建視圖的權限,如沒有,請以DBA用戶登錄,賦予ceshi用戶創建視圖的權限;
grant create view to ceshi;--1.以DBA用戶登錄賦予權限;
create view vi_boss as
select b.first_name,b.birthtime,b.icon from boss b;--2.切換回原用戶創建視圖
Oracle 創建視圖(View)
視圖:是基於一個表或多個表或視圖的邏輯表,本身不包含數據,通過它可以對錶裏面的數據進行查詢和修改。視圖基於的表稱爲基表,Oracle的數據庫對象分爲五種:表,視圖,序列,索引和同義詞。
視圖是存儲在數據字典裏的一條select語句。通過創建視圖可以提取數據的邏輯上的集合或組合。
語法結構
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
語法解析
OR REPLACE :若所創建的試圖已經存在,則替換舊視圖;
FORCE:不管基表是否存在ORACLE都會自動創建該視圖(即使基表不存在,也可以創建該視圖,但是該視圖不能正常使用,當基表創建成功後,視圖才能正常使用);
NOFORCE :如果基表不存在,無法創建視圖,該項是默認選項(只有基表都存在ORACLE纔會創建該視圖)。
alias:爲視圖產生的列定義的別名;
subquery :一條完整的SELECT語句,可以在該語句中定義別名;
WITH CHECK OPTION :插入或修改的數據行必須滿足視圖定義的約束;
WITH READ ONLY :默認可以通過視圖對基表執行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能爲空,但是該列沒有出現在視圖中,則不能通過視圖執行insert操作),WITH READ ONLY說明視圖是隻讀視圖,不能通過該視圖進行增刪改操作。現實開發中,基本上不通過視圖對錶中的數據進行增刪改操作。