0

現在ログインしているユーザーに関する情報のみを表示するビューを作成しようとしています。emp テーブル (employee テーブル) で、Ford と James の 2 人の従業員を選びました。私はそれらをユーザーとして作成しました。Ford がログインしている場合、Ford には Ford に関する情報のみが表示され、emp テーブルの他のユーザーは表示されず、James がログインしている場合も同様であることを確認したいと思います。

これが私が持っているものです。

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 コマンドが無効です

4

1 に答える 1

1

他の RDBMS に慣れていると思います。私の知る限り、Oracle 以外の構文を使用しています。Oracleでこれを行う方法は次のとおりです。

CREATE VIEW emp_view AS
  SELECT empno, ename, job, sal, comm
    FROM emp
   WHERE lower(ename) = lower(user)
于 2013-10-28T02:47:01.320 に答える