暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle SQL Server迁移: 临时表

askTom 2017-08-17
296

问题描述

在存储过程中,我需要一种方法来存储查询的中间结果。这个想法是,我选择一些数据,存储它们 (在一个变量中),后来在我的SP/CB我在其他查询中使用它们。
在MS SQL中,临时表可以做得很好,但是在Oracle中,它不是一个选项,因为在Oracle中,临时表是在架构级别创建的。
那么我应该用什么来实现oracle中的这种情况?

专家解答

为什么Oracle临时表不是选项?您选择的列会在运行时改变吗?

如果否,请使您的临时表与查询输出匹配,然后选择进入该表。我对MSSQL中的临时表并不太熟悉,但是在我看来,这可以解决问题。

或者,您可以将结果加载到数组中,以便以后使用批量收集进行处理。只需声明具有与查询形状匹配的类型的数组即可。例如:

declare
  cursor cur is 
    select rownum x from dual
    connect by level <= 5;
  
  type cur_tab is table of cur%rowtype index by binary_integer;
  rws  cur_tab;
begin
  open cur;
  fetch cur bulk collect into rws;
  
  for i in 1 .. rws.count loop
    dbms_output.put_line(rws(i).x);
  end loop;
  close cur;
end;
/

1
2
3
4
5
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论