It seems some sort of deviation in recent releases of Invantive UniversalSql prevent to manipulate dates inside variables:
itgendid289:
The value ‘11/26/2025 11:12:34’ is not a valid decimal.
Le format de la chaîne d’entrée est incorrect.
Use decimal dot ‘.’ as a decimal separator and comma ‘,’ as a thousands separator.
declare
l_test integer := 0;
t0 datetime := sysdateutc;
t1 datetime := sysdateutc;
secs0 decimal;
secs1 decimal;
begin
for i in 1..500000
loop
l_test := l_test + 1;
--dbms_output.put_line(l_test);
end loop;
--
t1:= sysdateutc;
dbms_output.put_line('t0: ' || t0);
dbms_output.put_line('t1: ' || t1);
secs0 := sysdateutc - sysdateutc; -- this works
dbms_output.put_line(secs0);
secs1:= round(t1 - t0); -- this triggers itgendid289
end;
OK, thanks for the update! The bug was not known, but probably some regression test case triggered the failure and has been resolved since the release of 25.0.95.
That is a cool one to discover! The problem reproduces on:
declare
--
-- Change datatype from 'datetime' to 'Datetime' of at least
-- one declaration to trigger itgendid289.
--
l_t0 Datetime := to_date('20251101', 'YYYYMMDD');
l_t1 datetime := to_date('20251101', 'YYYYMMDD');
l_x decimal;
begin
--
-- Triggers itgendid289:
-- The value '11/27/2025 13:37:07' is not a valid decimal.
-- The input string '11/27/2025 13:37:07' was not in a correct format.
--
l_x := round(l_t1 - l_t0);
end;
A new release has been made available that should solve this issue. The necessary changes are available with all releases of 25.0.119 and later, and with all future BETA versions.
This new release has been/will be taken into production on Invantive Cloud.