Oracle
 sql >> база данни >  >> RDS >> Oracle

Процедура за извикване от оракул към кристален отчет

една възможност е in_year да не се предава от Crystal или да се предава като NULL.

моля, проверете това. можете да добавите този код като бърза проверка:

  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');

каква грешка дава това?

сякаш годината е нула, ще получим тази грешка:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дали производителността ще се отрази, когато процедурата на базата данни се извиква от приложение много пъти?

  2. Преминете през предварително зададени стойности

  3. Кой измисли термина възел DIANA и как разбра, че 6 000 000 LOC са приблизително 67108864 (2**26) възела DIANA?

  4. Entity Framework генерира short вместо int

  5. Сървърната сесия на ORACLE е прекъсната поради фатална грешка