当前位置: 代码迷 >> Oracle开发 >> oracle 可有像SQLSERVER的#临时授勋能的方法
  详细解决方案

oracle 可有像SQLSERVER的#临时授勋能的方法

热度:165   发布时间:2016-04-24 08:01:30.0
oracle 可有像SQLSERVER的#临时表功能的方法
不是ORACLE 它自己的临时表 
SQLSERVER 的#临时表 可以在存储过程中 把一个查询语句的结果放进里面,并且在后续的查询中可以引用该临时表的字段。

ORACLE 必须先定义好临时表的字段

ORACLE WITH 语句 可以被后续查询引用到字段,可惜只能在同一个查询中使用,并且不能被同个查询里的字查询引用。

------解决方案--------------------
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
------解决方案--------------------
ORACLE限制
ORACLE只有先建好临时表,才能使用;
要不就只能使用集合类型了(记录+数组)或游标来处理

------解决方案--------------------
oracle也有临时表

oracle临时表分2种,一种是基于事务的,事务一提交后,自动清空表内容
另外一种是基于Session的,关联连接后,自动删除临时表
------解决方案--------------------
用游标,看你使用的情况,实在不行,建表
------解决方案--------------------
 
oracle创建临时表 

-- oracle临时表,先创建,后使用

create global temporary table TMP_CUSTOMERINFO
(
BRANCHFLAG CHAR(3) not null,
CUSTOMERID VARCHAR2(11) not null,
CUSTOMERNO VARCHAR2(20),
CUSTOMERNAME VARCHAR2(200),
GROUPCUSTOMERNO VARCHAR2(20),
CUSTOMERTYPE CHAR(1),
DENGJI CHAR(3)
)
on commit delete rows --在事务提交后数据就已经清除了.
--or
--on commit preserve rows; --在会话中止时或者导常退出时数据都会被清除掉.

  相关解决方案