Oracle数据库创建实体对象,在自命名包中定义函数以及返回实体对象数据

来源:互联网 发布:软件测试基础理论 编辑:程序博客网 时间:2024/06/01 07:48
select fpdm,dsfjdm from tfp_fplx where dsfjdm='13701';--创建测试实体create or replace type testObject as object(  fpdm varchar2(20),  dsfjdm varchar2(20)  )//分布执行,先执行上面的,在执行下面的--创建一个表,表中的每一条记录都是上面创建的实体。create or replace type fpbjcs.testObject_tab as table of testObject--Oracle数据库创建包,指定函数和存储过程create or replace package fpbjcs.pkg_test is  -- Public function and procedure declarations,注意方法中必须有参数,否则创建失败  function getfpdmtest(fjdm in varchar2)--输入参数    return testObject_tab;end pkg_test;--函数的具体实现create or replace package body fpbjcs.pkg_test isfunction getfpdmtest(fjdm in varchar2)return testObject_tab is--指定返回的数据存在那个实体表中    fpslTab testObject_tab;    i number;    begin      null;      i := 1;           fpslTab := testObject_tab();--创建一个空对象      fpslTab.extend;      for testObjectRow in (--testObjectRow代表查询结果中的每一条数据。名称可以自己命名        --查询结果集                select fpdm,dsfjdm from tfp_fplx where dsfjdm=fjdm                  )loop                      --循环遍历结果集,往实体表存放数据          fpslTab(i) := testObject( testObjectRow.fpdm,testObjectRow.dsfjdm );--给testObject实体赋值。然后添加到实体对应的表集合中             i := i+1;             fpslTab.extend;                       end loop;        return (fpslTab);    end getfpdmtest;    end pkg_test;--调用执行--testObject_tab是实体testObject对应的实体表集合select * from table(cast(pkg_test.getfpdmtest('13701') as testObject_tab))

原创粉丝点击