/*包头*/
create or replace package pk_breackitem
  is 
 type pak_sel is record
  (
  re_itemnr number(11),
  re_breackdate number(11),
  re_breackqty number(30),
  re_breackmoney number(30)
 );
 function f_sel_breack(fu_itemr,hr.breackitem.itemnr%type)
    return pak_sel;   end pk_breackitem;
.................................................................
    /*包体*/
create or replace package body pk_breackitem
  is 
 function f_sel_breack(fu_itemr,hr.breackitem.itemnr%type)
   is 
    breack pak_sel;
  begin
  select itemnr,breackdate,breackqty,breackmoney into breack from hr.breackitem;
    return breack;
   end f_sel_breack;
   end pk_breackitem;

解决方案 »

  1.   

    create or replace package pk_breackitem
    is 
    out_rc sys_refcursor;
    type pak_sel is record
    (
    re_itemnr number(11),
    re_breackdate number(11),
    re_breackqty number(30),
    re_breackmoney number(30)
    );
    function f_sel_breack(fu_itemr,hr.breackitem.itemnr%type)
    return pak_sel;end pk_breackitem;
    .................................................................
       /*包体*/
    create or replace package body pk_breackitem
    is 
    out_fun out_rc;
    function f_sel_breack(fu_itemr,hr.breackitem.itemnr%type)
    is 
    breack pak_sel;
    begin
    open out_rc;
    select itemnr,breackdate,breackqty,breackmoney  from hr.breackitem
    where itemnr=fu_itemr;
    fetch out_rc into breack;
    return breack;
    end f_sel_breack;
    end pk_breackitem;...............................................................................
    我这样只能包规范可以创建。包体不能通过有编译错误。我用 SHOW ERROR 显示,没有错误。我那错了?
      

  2.   

    这是用 SYS_REFCURSOR 改的。