创建视图定义器

时间:2013-10-28 02:10:25

标签: sql oracle sql-view

我正在尝试创建一个只显示当前用户登录信息的视图。在emp表(员工表)中,我挑选了两名员工Ford和James。我创建了它们作为用户。现在我想确保如果福特登录,那福特只会看到有关福特的信息,而且没有其他人来自emp表,如果詹姆斯登录的话也是如此。

这就是我所拥有的。

create definer=current_user view emp_view as 
  select empno, ename, job, sal, comm 
  from emp 
  where lower(ename) = lower(current_user);

也不确定lower(ename)= lower(current_user)是否有效。

我收到错误

  

第1行的错误:   ORA-00901:无效的CREATE命令

1 个答案:

答案 0 :(得分:1)

我猜你习惯了其他一些RDBMS;据我所知,您使用的是非Oracle语法。我在Oracle中这样做的方式是:

CREATE VIEW emp_view AS
  SELECT empno, ename, job, sal, comm
    FROM emp
   WHERE lower(ename) = lower(user)