Если другой пользователь фактически вставляет строку, соответствующую критериям представления, а другой пользователь совершает свою транзакцию, то вы сможете увидеть строку в своем сеансе.
- Вы уверены, что другой пользователь фактически использует тот же объект, что и вы? Есть ли вероятность, что V1, на который он ссылается, отличается от V1, на который вы ссылаетесь? Вы оба используете полные имена объектов (т.е.
SELECT * FROM Pavitar.v1
)
- Вы уверены, что другой пользователь фактически выполняет свою транзакцию после выполнения ВСТАВКИ?
- Вы уверены, что вставляемая строка соответствует критериям представления?
Например, если я создаю представление EMP_VIEW
, которое возвращает все данные из таблицы EMP
, где DEPTNO
равно 10, я могу вставить строку в таблицу EMP
через представление, которое не имеет DEPTNO
из 10.
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.