2017-10-16 134 views
-3
SQL> CREATE VIEW "[my_view]" as select ename, sal from emp where sal>2000; 

CREATE從EMP VIEW 「[my_view]」 作爲選擇的ename,SAL其中SAL> 2000 * ERROR位於第1行:ORA-01031:特權不足如何在Oracle SQL11克創建視圖

SQL> select * from "[my_view]"; 

SELECT * FROM 「[my_view]」 * ERROR位於第1行:ORA-00942:表或視圖不存在

這是我的代碼。我有什麼問題?

+0

方括號'[..]'對SQL標識符無效。有關詳細信息,請參見手冊:https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF51129 –

回答

0

我不確定是否可以將[]添加到視圖的名稱,請嘗試使用「[My_View]」,但您也必須使用「[My_View]」進行選擇。

+0

SQL> create view「[my_view]」as select ename,sal from emp where sal> 2000; 創建視圖 「my_view]」 作爲選擇的ename,從EMP SAL其中SAL> 2000 * ERROR 位於第1行: ORA-01031:足夠的特權 SQL> SELECT * FROM 「[my_view]」; select * from「[my_view]」 * 錯誤在第1行: ORA-00942:表或視圖不存在 –

+0

我該如何解決這個不足的特權問題? –

0

[]在視圖名稱是不允許在創建它們,您的查詢應該是這樣的

create view My_View as select ename, sal from emp where sal>2000; 

欲瞭解更多信息,請參閱docs

+0

SQL>創建視圖My_View作爲選擇ename,sal從emp where sal> 2000; create view My_View as select ename,sal from emp where> 2000 * 錯誤在第1行: ORA-01031:權限不足 –

+0

您必須已被授予CREATE VIEW(在模式中創建視圖)或通過角色。您沒有足夠的權限來創建視圖。 –

+0

我該如何解決這個不足的特權問題? –

0

Oracle不使用標識符「報價」括號。正確的語法是:

create view my_view as ... 

create view "MY_VIEW" as .. 

使用引號並創建通過精確該名稱的視圖,包括不同時,它也將被轉換爲數據庫標準情況下設置大小寫。使用Oracle my_view將爲MY_VIEW

編輯: 其他你所需要的創建任何視圖特權創建視圖。我假設你的表空間只有一個用戶,允許使用視圖但不能創建一個。

+0

SQL> create view my_view as select ename,sal from emp where sal> 2000; 創建視圖my_view作爲選擇ename,薩爾從emp其中sal> 2000 * 錯誤在第1行: ORA-01031:權限不足 –

+0

看看我更正的答案。 – wumpz

+0

你的答案在哪裏? –