gpt4 book ai didi

oracle - Oracle 存储过程的 "Boolean"参数

转载 作者:行者123 更新时间:2023-12-04 00:06:15 25 4
gpt4 key购买 nike

我知道 Oracle 没有用于参数的 boolean 类型,并且目前正在接受一个 NUMBER 类型,它的真/假为 1/0(而不是 'Y'/'N' CHAR(1)方法)。

我不是一个非常高级的 Oracle 程序员,但是在进行了一些挖掘和阅读了一些 ASKTOM 帖子之后,似乎您可以使用列格式来限制字段,例如:
MyBool NUMBER(1) CHECK (MyBool IN (0,1))
有没有办法将相同类型的检查约束应用于存储过程的输入参数?我想将可能的输入限制为 0 或 1,而不是在收到输入后明确检查它。

最佳答案

可以 使用 boolean 值作为存储过程的参数:

procedure p (p_bool in boolean) is...

但是,您不能在 SQL 中使用 boolean 值,例如选择语句:
select my_function(TRUE) from dual; -- NOT allowed

对于数字参数,无法向其声明性地添加“检查约束”,您必须编写一些验证代码,例如
procedure p (p_num in number) is
begin
if p_num not in (0,1) then
raise_application_error(-20001,'p_num out of range');
end if;
...

关于oracle - Oracle 存储过程的 "Boolean"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com