sql >> Database teknologi >  >> RDS >> Oracle

hvordan man validerer heltal datatype i oracle procedure

Mærkeligt nok håndhæver PL/SQL ikke INTEGER parametre. Jeg forventer, at Oracle enten implicit konverterer dataene eller sender en fejl, hvis 5.2 blev overført til en INTEGER parameter. Det ser ud til, at du skal tilføje din egen validering:

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;
/



  1. Hvad er forskellen mellem (*) og .* i regexp?

  2. Sådan returneres en liste over understøttede sprog i Oracle

  3. Slet rækker med fremmednøgle i PostgreSQL

  4. Hvordan kan jeg med Rails forespørge i db'en for et samlet antal og grupperet efter uge?