sql >> Databasteknik >  >> RDS >> Oracle

hur man validerar heltalsdatatyp i Oracle-proceduren

Konstigt nog tvingar PL/SQL inte INTEGER parametrar. Jag förväntar mig att Oracle antingen implicit konverterar data eller skickar ett fel om 5.2 skickades till en INTEGER parameter. Det verkar som att du måste lägga till 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. MYSQL:Uppdatera fält med sammansättning av flera fält

  2. Trunkering av en tabell i en lagrad procedur

  3. Den angivna nyckeln var för lång; max nyckellängd är 767 byte - ASPNet Identity MySQL

  4. Hur kan jag införa flera villkor i LIKE-operatorn?