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

CREATE VIEW "[my_view]" as select ename, sal from emp where sal>2000 * ERROR at line 1: ORA-01031: 权限不足

SQL> select * from "[my_view]";

select * from "[my_view]" * 第 1 行出现错误:ORA-00942:表或视图不存在

这是我的代码。我怎么了?

4

3 回答 3

1

[ ] 在创建视图名称时不允许使用,您的查询应如下所示

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

有关更多信息,请参阅文档

于 2017-10-16T12:44:09.037 回答
0

我不确定您是否可以将 [ ] 添加到视图名称中,请尝试使用“[My_View]”,但您也必须使用“[My_View]”进行选择。

于 2017-10-16T12:42:30.490 回答
0

Oracle 不对标识符“引用”使用括号。正确的语法是:

create view my_view as ...

或者

create view "MY_VIEW" as ..

使用引号确实会按包括大写和小写在内的确切名称创建视图,而如果没有它,它将被转换为数据库标准大小写设置。使用 Oracle my_view将是MY_VIEW

编辑: 另外,您需要创建任何视图权限才能创建视图。我假设您的表空间中只有一个用户,允许使用视图但不能创建视图。

于 2017-10-16T12:46:24.277 回答