源文地址:http://blog.itpub.net/750077/viewspace-2134222/

经常看到SQLSERVER 中用表变量类型的方式就能做到缓存一个比较大的中间结果,
然后再对这个表变量做处理,非常方便,那么ORACLE有这种表变量的方式处理中间结果么
实验后发下你用如下方法可以起到SQL SERVER里表变量的作用

1 创建基础数据表

create table T_TEST_PIP(
ID VARCHAR(10),
TT DATE,
DATA_ VARCHAR2(60)
)

SELECT *
    FROM T_TEST_PIP

2 创建记录行类型

create or replace type row_data as object (      id number,
time date,
data varchar2(60)
);

3 创建行集合类型

create or replace type rows_array as table of row_data;    

4 封装查询结果到行集合类型里

create or replace function f_test_array
(
n in number default null
)
return rows_array as --RETURN out_rec_set PIPELINED IS
t_array rows_array := rows_array();
--id1 number;
--time1 date;
--data1 varchar2(60);
BEGIN
FOR i in 1..3
LOOP
t_array.extend();
--把一个相对复杂SQL查询出的结果,放入行集合类型
SELECT
ROW_DATA (T.ID ,T.TT ,CASE
WHEN T.DATA_ IS NULL
THEN ''
ELSE T.DATA_
END)
INTO
t_array(i)
FROM
T_TEST_PIP T
WHERE
id = i
GROUP BY
T.ID
, T.TT
, T.DATA_
; END LOOP;
dbms_output.put_line('test '
||t_array(1).ID);
return t_array;
END;

5 从行集合类型里取数据

 select * from table(f_test_array());

6 应用行集合类型和其他表联合

 SELECT *
FROM table(f_test_array()) T1
,table(f_test_array()) T2
,T_TEST_PIP T3
WHERE T1.ID = T2.ID
AND T1.ID = T3.ID ;

最新文章

  1. Asp.net Boilerplate之AbpSession扩展
  2. javascript如何设置DIV背景色为随机色
  3. 字符编码笔记:ASCII,Unicode和UTF-8 转
  4. (转载)在Visual Studio 2015中使用Git
  5. HTTP协议的报文结构
  6. Excel中添加并使用宏实现批量更新数据
  7. 十步图解CSS的position
  8. DataTable转List<Model>通用类
  9. Java并发编程-CopyOnWriteArrayList
  10. mysql explain输出中type的取值说明
  11. display:none,overflow:hidden,visibility:hidden之间的区别
  12. FCKEditor使用说明
  13. WEB网站性能优化
  14. mystricpy的实现???
  15. Collaborative Filtering(协同过滤)算法详解
  16. Python并发编程-RabbitMQ消息队列
  17. 2019_BUAAOO_第二单元总结
  18. 03-依赖倒置原则(DIP)
  19. smarty-2014-02-28
  20. HDFS handler

热门文章

  1. C#桌面程序设计复习
  2. Mongodb3.X版本的 的用户认证
  3. Java 如何中断和恢复线程的执行
  4. Mysql中的auto_increment
  5. 比特股-去中心化交易所, STEEM - 去中心化社区, EOS - 下一代智能合约
  6. 调试:Spring AOP执行过程
  7. (转)JSON Web Token - 在Web应用间安全地传递信息
  8. PAT 1044 Shopping in Mars[二分][难]
  9. InFusion错误类型分析
  10. Python笔记 #17# Pandas: Merge