如何在oracle过程中验证整数数据类型

时间:2015-02-27 23:02:34

标签: oracle validation types integer procedure

我在Oracle过程中有一个带整数数据类型的参数,它会将参数中提到的行数生成到表中。

我想用其数据类型验证参数。这意味着,如果参数值为5.0,则它会创建5行,如果值为5.2,则会产生错误。我该如何创建这个逻辑?

1 个答案:

答案 0 :(得分:2)

奇怪的是,PL / SQL不会强制执行INTEGER个参数。如果将5.2传递给INTEGER参数,我希望Oracle隐式转换数据或抛出错误。看起来您需要添加自己的验证:

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