Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wywołanie procedury od wyroczni do kryształowego raportu

jedną z możliwości jest to, że in_year nie jest przekazywana przez Crystal lub przekazywana jako NULL.

proszę to sprawdzić. możesz dodać ten kod jako szybki test:

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

jaki błąd to rzuca?

jakby rok był zerowy, otrzymalibyśmy ten błąd:

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. Chcesz, aby to proste zapytanie zapętliło się

  2. Korzystanie z łączy bazy danych Oracle bez nieczytelnego dynamicznego SQL

  3. Czy xmlparserv2 z com.oracle.jdbc:ojdbc8 (v12.2.0.1) nagle uległ uszkodzeniu?

  4. Problem z dokładnością liczby dziesiętnej Oracle ODP.net podczas wypełniania zbioru danych. Wyjątek:operacja arytmetyczna spowodowała przepełnienie

  5. Jak tworzyć pakiety PL/SQL w bazie danych Oracle