他のユーザーが実際にビューの基準を満たす行を挿入していて、他のユーザーがトランザクションをコミットしている場合は、セッションでその行を表示できます。
- 他のユーザーが実際にあなたと同じオブジェクトを使用していると確信していますか?彼または彼女が参照しているV1があなたが参照しているV1と異なる可能性はありますか?両方とも完全修飾オブジェクト名を使用していますか(つまり
SELECT * FROM Pavitar.v1
)
- INSERTを実行した後、他のユーザーが実際にトランザクションをコミットしていることを確認しますか?
- 挿入されている行がビューの基準を満たしていることを確認しますか?
たとえば、が10であるテーブルEMP_VIEW
からすべてのデータを返すビューを作成する場合、10がないビューを介してテーブルに行を挿入できます。EMP
DEPTNO
EMP
DEPTNO
SQL> create or replace view emp_view
2 as
3 select *
4 from emp
5 where deptno=10;
View created.
SQL> insert into emp_view( empno, ename, job )
2 values( 7623, 'PAV', 'Dev' );
1 row created.
したがって、ビューをクエリしても行は表示されません
SQL> select empno, ename, job
2 from emp_view;
EMPNO ENAME JOB
---------- ---------- ---------
7782 CLARK MANAGER
7839 KING PRESIDENT
7934 MILLER CLERK
しかし、私はそれを基礎となるテーブルで見るでしょう
1 select empno, ename, job
2* from emp
SQL> /
EMPNO ENAME JOB
---------- ---------- ---------
7623 PAV Dev
7369 smith CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 SM0 CLERK
7902 FORD ANALYST
7934 MILLER CLERK
1234 FOO
16 rows selected.