我是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;
答案 0 :(得分:1)
首先要对行做什么;接下来是SELECT
:
SQL> create global temporary table gtt_dept
2 on commit preserve rows --> first
3 as
4 select * from dept; --> next
Table created.
SQL>
答案 1 :(得分:0)
CREATE GLOBAL TEMPORARY TABLE tmp_table SELECT * FROM tbl_NAME WHERE条件。 在COMMIT PRESERVE ROWS;
创建全局临时表gtt_dept
on commit preserve rows
如
select * from dept;