Oracle中的存储函数返回自定义Type类型

当C罗爱上梅西 发布于 2011/12/05 13:54
阅读 3K+
收藏 0

小弟现在大四,现在在广州一家公司搞软件开发,公司开发采用的是php+oracle,但是本人常用的是java,来公司发现原来它们的业务很多都写在oracle的存储过程里,而且用pl/sql开发存储过程,用package存放一系列的function和procedure(我们公司叫它pkg),用type(我们公司通常叫ob),如果需要返回一系列数据用table of ob(这里我们叫nt),也就是用到了oracle9i以后的面向对象知识,我现在不知道怎么样通过一个function来返回一个ob对象,也就是我需要返回一条数据,然后在前台通过php来调用,php我们用到了zend framework框架。

这是返回一系列数据

ob_test (申明)

create or replace type ob_test  as object
(

    
      CONSTRUCTOR FUNCTION ob_test  RETURN SELF AS RESULT
);

ob_test (body部分)

create or replace type body ob_test is

CONSTRUCTOR FUNCTION ob_test RETURN SELF AS RESULT IS
  BEGIN
      RETURN;
    END;
end;

 

 

nt_test

create or replace type nt_test is table of ob_test;

 

pkg_test (申明)

create or replace package pkg_test is

 function getList return nt_test;

 function getOb return ob_test; --这里要怎样去写方法,然后怎样调用

end pkg_test;

pkg_test (body部分)

create or replace package body pkg_test is

 function getList return nt_test is

 begin

   --这里通过游标遍历然后来把值存放入nt,然后返回,如果我只要返回一个ob呢

 end;

end pkg_test;

 

前面的那个getList可以这样调用  select * from table(pkg_test.getList);

请问如果我返回了一个ob,怎样去调用,请高手指教,可能没描述清楚,因为我接触oracle不久,很多东西都不是很明白!!!谢谢了

加载中
返回顶部
顶部