有这样一个问题:有三张表a,b,c
分别对三张表中的某个属性进行统计,统计后的结果放到游标中并返回。
这样的存储过程怎么写啊?迷茫。

解决方案 »

  1.   

    create or replace procedure p_test
    (
        ocursor       out       sys_refcursor
    )
    begin
        open ocursor for **** -- * 号为一个 select 语句,对 3 张表处理后,写一个查询语句在 open ocursor for 后即可返回数据了
    end;
      

  2.   

    那么这个for后面的查询语句怎么写啊?表名是什么?
    下面是我的代码,你看看,怎么搞?
    CREATE OR REPLACE PROCEDURE EA_MARKET_INTERFACE.P_GetMarketStatistics(
    AC_RESULT      OUT       SYS_REFCURSOR,        --结果集临时表名描述
    )IS
    BEGIN
    --待呼总数
    SELECT COUNT(1) INTO CALLING_NUM
    FROM CUST_INDEX
    --已外呼总数
    SELECT COUNT(1) INTO AI_CALLED_NUM
    FROM EA_MARKET.MS_CALL_JOUR
    open AC_RESULT for ?   ----这里怎么写?
    end;
      

  3.   

    CREATE OR REPLACE PROCEDURE EA_MARKET_INTERFACE.P_GetMarketStatistics( 
    AC_RESULT      OUT      SYS_REFCURSOR,        --结果集临时表名描述 
    )IS
    AI_CALLED_NUM number;
    AI_CALLED_NUM number;
    BEGIN 
    --待呼总数 
    SELECT COUNT(1) INTO AI_CALLING_NUM 
    FROM CUST_INDEX 
    --已外呼总数 
    SELECT COUNT(1) INTO AI_CALLED_NUM 
    FROM EA_MARKET.MS_CALL_JOUR 
    open AC_RESULT for select AI_CALLING_NUM as "AI_CALLING_NUM ", AI_CALLED_NUM as "AI_CALLED_NUM" from dual;
    end;