在Oracle中的临时表和SqlServer有些区别。
在SqlServer中的临时表应该只是一个暂时存在的表,在会话结束后会自动删除表及其数据。
而在Oracle中的临时表则是表中的数据暂时存在,而临时表本身和其他表一样,一直存在于数据库中。
并且Oracle中的临时表数据的存放也分为两种
一:事务临时表 只要事务一提交,存放于临时表中的数据会被自动删除。
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT DELETE ROWS;
二:会话临时表 只有在中断会话时,才会将临时表中的数据删除。
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
DDL是一种消耗资源非常大的操作,在运行时尽量不要使用,应用程序需要的临时表应在应用程序
安装时创建,而不是在运行时创建。Oracle中的临时表和其他数据库的临时表是相似的,在每个
数据库中创建临时表一次,不必在数据库中的每个存储过程中创建一次。临时表
总是存在的,他们作为对象存在于数据字典中,并且总是保持为空,直到
有会话在其中放入数据。