2017-10-16 81 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

你的答案在哪里? –