Создать глобальную временную таблицу в Oracle SQL - PullRequest
0 голосов
/ 08 июня 2018

Я новичок в SQL.Я хочу создать (глобальную или нет) временную таблицу в Oracle SQL, которая будет включать простой выбор данных в форме SELECT * FROM tbl_NAME WHERE... и которая после окончания моего сеанса будет удалена (точно так же, как временные таблицы MSFT SQL изФорма ##tbl_NAME).

Я нашел в Интернете, что один из способов сделать это:

CREATE GLOBAL TEMPORARY TABLE tmp_table
SELECT * FROM tbl_NAME WHERE conditions.
ON COMMIT PRESERVE ROWS;

, хотя я получаю ошибку ORA-00904: неверный идентификатор

Я также обнаружил, что другой альтернативой является

CREATE PRIVATE TEMPORARY TABLE tmp_table AS 
SELECT * FROM tbl_NAME WHERE conditions;

, который выдает ошибку ORA-00905: отсутствует ключевое слово .

Обратите внимание, что я уже знаюэта альтернатива, которая работает:

DROP TABLE    tmp_table;
CREATE TABLE    tmp_table AS 
SELECT      * FROM tbl_NAME; 
DROP TABLE    tmp_table;

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Показанный ниже формат работает в TERADATA

CREATE GLOBAL TEMPORARY TABLE tmp_table SELECT * FROM tbl_NAME WHERE.ON COMMIT PRERERE ROWS;

В Oracle это работает следующим образом

создать глобальную временную таблицу gtt_dept для строк фиксации фиксации
как select * from dept;

0 голосов
/ 08 июня 2018

Что вы хотите сделать с строками на первом месте;SELECT идет дальше:

SQL> create global temporary table gtt_dept
  2  on commit preserve rows                       --> first
  3  as
  4  select * from dept;                         --> next

Table created.

SQL>
...