Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Procedimento de chamada do oráculo para o relatório de cristal


uma possibilidade é que in_year não esteja sendo passado pelo Crystal ou passado como NULL.

por favor verifique isso. você pode adicionar este código como uma verificação rápida:
  if (trim(in_year) is null) or length(in_year != 4))
  then
    raise_application_error(-20000, 'year is invalid: '  || in_year);
  end if;
 inv_date := to_date('31-01-' || in_year || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS');

que erro isso gera?

como se o ano fosse nulo, receberíamos esse erro:
SQL> declare
  2    inv_date DATE;
  3     in_year varchar2(42) ;
  4  begin
  5   inv_date := to_date('31-01-' || in_year || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS');
  6  end;
  7  /
declare
*
ERROR at line 1:
ORA-01850: hour must be between 0 and 23
ORA-06512: at line 5