Код: Выделить всё
CONNECT SCOTT/TIGER@MY_DB
INSERT INTO GTT_DEPT(DEPTNO, DNAME, LOC) VALUES (1012, '2-ACCOUNTING', 'NEW YORK');
INSERT INTO GTT_DEPT(DEPTNO, DNAME, LOC) VALUES (2022, '2-RESEARCH', 'DALLAS');
INSERT INTO GTT_DEPT(DEPTNO, DNAME, LOC) VALUES (3032, '2-SALES', 'CHICAGO');
INSERT INTO GTT_DEPT(DEPTNO, DNAME, LOC) VALUES (4042, '2-OPERATIONS', 'BOSTON');
INSERT INTO GTT_DEPT(DEPTNO, DNAME, LOC) VALUES (5052, '2-AEROSPACE', 'HOUSTON');
COMMIT;
SELECT * FROM GTT_DEPT;
DEPTNO DNAME LOC
---------- -------------- -------------
1012 2-ACCOUNTING NEW YORK
2022 2-RESEARCH DALLAS
3032 2-SALES CHICAGO
4042 2-OPERATIONS BOSTON
5052 2-AEROSPACE HOUSTON
Как видим, в результате получилось то же, что было во временной таблице
8) Посмотрим, какие данные содержатся в его базовой таблице:
Код: Выделить всё
SELECT * FROM PSEUDO_GTT_DEPT_BASE;
SQL> SELECT * FROM PSEUDO_GTT_DEPT_BASE;
DEPTNO DNAME LOC AUDSID
---------- -------------- ------------- ----------
1012 2-ACCOUNTING NEW YORK 12962040
2022 2-RESEARCH DALLAS 12962040
3032 2-SALES CHICAGO 12962040
4042 2-OPERATIONS BOSTON 12962040
5052 2-MIGRATION MOSCOW 12962040
1010 ACCOUNTING NEW YORK 12962029
2020 RESEARCH DALLAS 12962029
3030 SALES CHICAGO 12962029
4040 OPERATIONS BOSTON 12962029
9) Выбрать и/или удалить строки, уже неиспользуемые никакими сессиями, можно командами:
Код: Выделить всё
SELECT * FROM PSEUDO_GTT_DEPT_BASE
WHERE AUDSID NOT IN (SELECT AUDSID FROM v$session);
DELETE FROM PSEUDO_GTT_DEPT_BASE
WHERE AUDSID NOT IN (SELECT AUDSID FROM v$session);
COMMIT;
если пользователи не будут очищать "псевдовременную" таблицу командами:
Код: Выделить всё
DELETE FROM GTT_DEPT;
COMMIT;