Vreemd genoeg dwingt PL/SQL INTEGER
niet af parameters. Ik zou verwachten dat Oracle de gegevens impliciet zou converteren of een fout zou genereren als 5.2 werd doorgegeven aan een INTEGER
parameter. Het lijkt erop dat u uw eigen validatie moet toevoegen:
create or replace procedure test_procedure(a integer) is
begin
if a is not null and a <> trunc(a) then
raise_application_error(-20000, 'Parameter must be an integer');
end if;
end;
/
--Works
begin
test_procedure(5.0);
end;
/
--Fails with "ORA-20000: Parameter must be an integer".
begin
test_procedure(5.2);
end;
/