CREATE OR REPLACE PROCEDURE chxd_child (
p_yyyy IN  varchar2,
p_return_cur OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_return_cur FOR
'SELECT * FROM chxd.test_zhmns  WHERE lcl_dpt_dt >='|| p_yyyy ;
END chxd_child;
CREATE OR REPLACE PROCEDURE chxd_parent (pNumRecs VARCHAR2) IS
p_retcur SYS_REFCURSOR;
at_rec chxd.test_zhmns%ROWTYPE;
BEGIN 
 chxd_child(pNumRecs, p_retcur);
LOOP
FETCH p_retcur INTO at_rec;
dbms_output.put_line(at_rec.biz_date ||
' - ' || at_rec.lcl_dpt_dt ||
' - ' || TO_CHAR(at_rec.lcl_dpt_tm) ||
' - ' || TO_CHAR(at_rec.airln_cd));
exit when p_retcur%notfound;  
END LOOP;
close p_retcur;
END chxd_parent;我执行chxd_parent,在sqlplus中可以得到select的结果集现在我的问题是: 我其他地方要调用这个存储过程,要直接显示其各个列,没有绑定可用,
而且还必须是要存储过程实现。
就是我在其他报表开发地方只要输入参数,就可以显示一个结果集处理,就好比是select 后面直接加了个参数.各位帮帮忙,报表开发工具:海波龙

解决方案 »

  1.   

    Maybe I have no idea for this issue. Up!
      

  2.   

    其实我想要的和sql2000中的存储过程中的select 一样 
      

  3.   

    p_return_cur   直接就是返回的数据集,
    你那个过程本身就实现这个攻能了
    至于怎么调用,是开发工具的问题了
      

  4.   

    这样吧,在sql里面select输出,你在此存储过程里面把产生的数据插入一个表里面,每次调用存储过程时判断一下,如果表存在就drop掉,再生存空表,后面把数据插入了表了,再select * from 表oracle里面没有sql select 列1,列2这种吧