Oracle:通过SELECT语句创建临时表

14

我试图将CREATE TABLE table_name AS SELECT .... 语句与GLOBAL临时表语句混合使用,但它们并不很兼容。

我的示例有问题吗?


CREATE GLOBAL TEMPORARY TABLE a AS
(
   SELECT * from b
)
ON COMMIT PRESERVE ROWS;  
2个回答

39
应该是:

它应该是:

CREATE GLOBAL TEMPORARY TABLE a
ON COMMIT PRESERVE ROWS
AS
select * from b;

(如果您最初不想使用来自b的所有数据填充当前会话,也可以添加where 1 = 0。)


2
嗨,我尝试了这个,但是使用了Create Private Temporary Table,但是出现了一个错误,其中TEMPORARY被突出显示并显示以下信息:[Error] Execution (386:16):ORA-00905: missing keyword。您能否请教我哪里出错了? - HL8

1

创建私有临时表TMP_MYTABLE 在提交行保留的情况下 作为 从MYTABLE中选择* 其中1 = 0;

=> ORA-00905:缺少关键字

我使用的是Oracle 12.1版本


1
你的回答可以通过添加更多支持性信息来改进。请进行[编辑]以添加进一步的细节,例如引用或文献资料,以便他人可以确认你的答案的正确性。你可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接