在建立报表时建了Period1Formula,编译并无错误
function Period1Formula return VARCHAR2 is
beginDECLARE
  l_period_name VARCHAR2(15);
  l_period_POD  DATE;
  l_period_PCD  DATE;
  l_period_closed VARCHAR2(4);
  l_period_PC   NUMBER(15);
  l_period_FY   NUMBER(15);
BEGIN  SELECT period_name,
         period_counter,
         period_open_date,
         nvl(period_close_date, sysdate,
decode(period_close_date, null, 'NO', 'YES'),
         fiscal_year
  INTO   l_period_name,
         l_period_PC,
         l_period_POD,
         l_period_PCD,
l_period_closed,
         l_period_FY
  FROM   FA_DEPRN_PERIODS
  WHERE  book_type_code = :P_FROM_BOOK
  AND    period_name    = :P_PERIOD1;  :Period1_PC := l_period_PC;
  :Period1_POD := l_period_POD;
  :Period1_PCD := l_period_PCD;
  :Period_Closed := l_period_closed;
  :Period1_FY  := l_period_FY;
  return(l_period_name);
END;
     
RETURN NULL; end;但oracle application 运行时错误如下Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
AMERICAN_AMERICA.ZHS16CGB231280'.,'REP-1401: 'period1formula': Fatal PL/SQL error occurred.
ORA-01403: no data found

解决方案 »

  1.   

     SELECT period_name,
      period_counter,
      period_open_date,
      nvl(period_close_date, sysdate,
    decode(period_close_date, null, 'NO', 'YES'),
      fiscal_year
      INTO l_period_name,
      l_period_PC,
      l_period_POD,
      l_period_PCD,
    l_period_closed,
      l_period_FY
      FROM FA_DEPRN_PERIODS
      WHERE book_type_code = :P_FROM_BOOK
      AND period_name = :P_PERIOD1;  :Period1_PC := l_period_PC;
      :Period1_POD := l_period_POD;
      :Period1_PCD := l_period_PCD;
      :Period_Closed := l_period_closed;
      :Period1_FY := l_period_FY;
      return(l_period_name);选择结果无数据,触发ORA-01403: no data found 错误。加上exception部分。
      

  2.   

    BEGIN  SELECT period_name,
      period_counter,
      period_open_date,
      nvl(period_close_date, sysdate,
    decode(period_close_date, null, 'NO', 'YES'),
      fiscal_year
      INTO l_period_name,
      l_period_PC,
      l_period_POD,
      l_period_PCD,
    l_period_closed,
      l_period_FY
      FROM FA_DEPRN_PERIODS
      WHERE book_type_code = :P_FROM_BOOK
      AND period_name = :P_PERIOD1;  :Period1_PC := l_period_PC;
      :Period1_POD := l_period_POD;
      :Period1_PCD := l_period_PCD;
      :Period_Closed := l_period_closed;
      :Period1_FY := l_period_FY;
      return(l_period_name);exception
      when others then
         null;
    END;
        
    RETURN NULL; end;
      

  3.   

    谢谢suiziguo,是其中一个参数名写错。报表里面的为P_PERIOD1,而传参数时又被写成P_PERIOD