• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
就是just4 2014年03月12日
请教: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);但表类型提前创建又是一个麻烦,与其用此还不如用临时表!

各位仁兄还有什么好的经验和办法没,?

...全文
224 点赞 收藏 10
写回复
10 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Oracle
创建于2007-09-28

6391

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告