日期:2014-05-17  浏览次数:20831 次

调用oracle存储过程没结果出来,为什么
SQL> create or replace procedure DGReport
  2  (
  3  b_time in DATE,
  4  b_wfxw out varchar2,
  5  b_wfxwCOUNT out number
  6  )
  7  AS
  8  begin
  9     select WFXW,COUNT(*) into b_wfxw, b_wfxwCOUNT from tb_vio_surveil_bd   where wfsj =b_time AND JC='京' GROUP BY WFXW;
 10  end DGReport;
 11  /
 
Procedure created
 
SQL> 
SQL> dECLARE b_wfxw varchar(10); b_wfxwCOUNT number(10); begin DGReport(to_date('2013/12/30 10:58:00','YYYY-MM-DD HH24:MI:SS'),b_wfxw,b_wfxwCOUNT);
  2  end;
  3  /
 
PL/SQL procedure successfully completed
------解决方案--------------------
引用:
SQL> create or replace procedure DGReport
  2  (
  3  b_time in DATE,
  4  b_wfxw out varchar2,
  5  b_wfxwCOUNT out number
  6  )
  7  AS
  8  begin
  9     select WFXW,COUNT(*) into b_wfxw, b_wfxwCOUNT from tb_vio_surveil_bd   where wfsj =b_time AND JC='京' GROUP BY WFXW;
 10  end DGReport;
 11  /
 
Procedure created
 
SQL> 
SQL> dECLARE b_wfxw varchar(10); b_wfxwCOUNT number(10); begin DGReport(to_date('2013/12/30 10:58:00','YYYY-MM-DD HH24:MI:SS'),b_wfxw,b_wfxwCOUNT);
  2  end;
  3  /
 
PL/SQL procedure successfully completed

将调用存储过程改为如下方式,增加输出
DECLARE
  B_WFXW      VARCHAR(10);
  B_WFXWCOUNT NUMBER(10);
BEGIN
  DGREPORT(TO_DATE('2013/12/30 10:58:00', 'YYYY-MM-DD HH24:MI:SS'),
           B_WFXW,
           B_WFXWCOUNT);
  DBMS_OUTPUT.put_line('B_WFXW:' 
------解决方案--------------------
 B_WFXW);
  DBMS_OUTPUT.put_line('B_WFXWCOUNT:' 
------解决方案--------------------
 B_WFXWCOUNT);
END;

另外,在执行之前,输入如下命令。
set serveroutput on
SQL> SET SERVEROUTPUT ON
SQL> 
SQL> DECLARE
  2    B_WFXW      VARCHAR(10);
  3    B_WFXWCOUNT NUMBER(10);
  4  BEGIN
  5    DGREPORT(TO_DATE('2013/12/30 10:58:00', 'YYYY-MM-DD HH24:MI:SS'),
  6             B_WFXW,
  7             B_WFXWCOUNT);<