请教:Oracle中临时表替代方案?
最近折腾Oracle,请教各位大大几个简单问题:
1、Oracle存储过程中对有没有好的临时表替代方案?Oracle临时表比较麻烦,有几个小问题:
一是在PLSQL中需要动态创建,拼字符串总是麻烦,易出错,易出问题
二是如提前创建,往往需求是随着代码展开而发生变化的,提前预知所有的内容和结构是不可能的
三是如动态创建,最大麻烦是DDL并发问题,一个在create,一个在drop肯定有问题
三是如动态创建,对于on commit preserve rows的临时表想drop掉还得加奇淫技巧trunacate
如说Oracle中避免使用临时表,但稍复杂的sp肯定都很需要一个“结果集”用于后续多种引用的,哪还有什么好的办法?
后续引用都用用子查询,这个扯蛋!
用with表达式,只能紧跟一段语句,且还不能with xx as () begin ...1;...2; end;
用游标cursor,用这个都是一行一行处理,一个一个标量分开来与集合处理方式有点背得太远
用表类型(table由record或object构成),但表类型是数组不是表,除非强制转换成集合处理时才能满足select * from tabtype(xx);但表类型提前创建又是一个麻烦,与其用此还不如用临时表!
各位仁兄还有什么好的经验和办法没,?