create or replace procedure P_BC_TJ_EXEC is
v_date_begin date;
v_date_end date;
v_start_date date;
v_end_date date;
BEGIN
 v_start_date:=TO_DATE('2005-01-01','YYYY-MM-DD');
 v_end_date:=TO_DATE('2008-07-17','YYYY-MM-DD');
 if v_start_date!=v_end_date then
    v_date_begin := to_date(to_char(v_end_date-1,'YYYY-MM-DD'),'YYYY-MM-DD');
    v_date_end := to_date(to_char(v_end_date,'YYYY-MM-DD'),'YYYY-MM-DD');
    v_end_date:=v_end_date-1;
    P_BC_DAILHTJ(v_date_begin,v_date_end);
  end if;
 END P_BC_TJ_EXEC; 执行后提示如下:
Compilation errors for PROCEDURE SANY.P_BC_TJ_EXECError: Hint: Value assigned to 'v_end_date' never used in 'P_BC_TJ_EXEC'
Line: 12
Text: v_end_date:=v_end_date-1;

解决方案 »

  1.   

     改成这样也不对呀?  v_end_date:=v_date_begin;   
      

  2.   

    够乱的,没见过这样命名变量的。
    create or replace procedure P_BC_TJ_EXEC is
    v_date_begin date;
    v_date_end date;
    v_start_date date;
    v_end_date date;
    BEGIN
    v_start_date:=TO_DATE('2005-01-01','YYYY-MM-DD');
    v_end_date:=TO_DATE('2008-07-17','YYYY-MM-DD');
    if v_start_date!=v_end_date then
        v_date_begin := v_end_date-1;
        v_date_end := v_end_date;
        --v_end_date:=v_end_date-1;--这句话根本没用
        P_BC_DAILHTJ(v_date_begin,v_date_end);
      end if;
    END P_BC_TJ_EXEC; 
      

  3.   

       v_date_begin := to_date(to_char(v_end_date-1,'YYYY-MM-DD'),'YYYY-MM-DD'); 
        v_date_end := to_date(to_char(v_end_date,'YYYY-MM-DD'),'YYYY-MM-DD'); 
    你这两句写这么复杂干什么啊
    v_end_date本身就等于2008-07-17 00:00:00
     v_date_begin := v_end_date-1
    就是2008-07-16 00:00:00
    和你上面的语句一样的结果,你却要先to_char,再to_date
      

  4.   

    v_date_end和v_end_date是两个变量!晕不?????
      

  5.   

    v_end_date:=v_end_date-1;
    这句话不要了..
      

  6.   

    我是要求 计算出从v_start_date  到v_end_date之间每一天的结果,所以要一个循环语句来执行