为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Oracle数据库中创建临时表?

如何在Oracle数据库中创建临时表?

达令说 2019-08-27 16:20:33
如何在Oracle数据库中创建临时表?我想在Oracle数据库中创建一个临时表就像是Declare table @table (int id)在SQL服务器中然后用select语句填充它可能吗?谢谢
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

是的,Oracle有临时表。这是一篇描述它们的AskTom文章的链接,这里是官方的oracle CREATE TABLE文档。

但是,在Oracle中,只有临时表中的数据是临时的。该表是其他会话可见的常规对象。在Oracle中频繁创建和删除临时表是一种不好的做法。

CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)ON COMMIT PRESERVE ROWS;

Oracle 18c添加了私有临时表,它们是单会话内存中对象。有关详细信息,请参阅文档。可以动态创建和删除私有临时表。

CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales ASSELECT * FROM orders WHERE order_date = SYSDATE;

临时表可能很有用,但它们通常在Oracle中被滥用。通过使用内联视图将多个步骤组合到单个SQL语句中,通常可以避免它们。


查看完整回答
反对 回复 2019-08-27
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

CREATE GLOBAL TEMPORARY TABLE Table_name    (startdate DATE,
     enddate DATE,
     class CHAR(20))
  ON COMMIT DELETE ROWS;


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 1666 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信