oracle管道输出

通常我们会在oracle中用dbms_output输出调试信息,但dbms_output只能在调用过程完成才返回结果,不能实时输出的。这意味着通常我们经常要等几分钟或更长的时间才能看到调试信息,那怎么才能实现实时输出呢?

如果想实时输出可以通过写表或者写日志的方式进行,和pipe row管道输出的方法。
下面为大家介绍管道输出
管道输出可以通过复杂的处理最终得到一个结果集,然后通过pipelined返回

--CREATE OR REPLACE TYPE myObjectFormat AS OBJECT  ( A INT, B DATE, C VARCHAR2(25));

-- --声明一个列类型myObjectFormat 

--CREATE OR REPLACE TYPE myTableType  AS TABLE OF myObjectFormat;
 --声明一个表类型 myTableType


create or replace FUNCTION prodFunc 
RETURN myTableType
PIPELINED 
IS
BEGIN
  FOR i in 1 .. 5
    LOOP
      PIPE ROW (myObjectFormat(i,SYSDATE+i,'Row '||i));
    END LOOP;
    RETURN;
  END;


--SELECT * FROM TABLE(prodFunc);

--执行函数,结果如下:


 

 

posted on 2013-12-12 16:08  我的小人生  阅读(238)  评论(0编辑  收藏  举报