如何为变量设置特定范围
How to set a specific range for a variable
我们知道这是声明变量的方法:
varname number(precision,scale);
但是我们如何指定这个变量只能有像from 1 to 13
这样的特定值?
varname number(2,0) range 1..13
-- 但这是错误的,还是应该改用整数?
您可以声明限制在值范围内的自定义 PL/SQL 子类型,如下所示:
declare
subtype small_int is pls_integer range 1..100;
x small_int;
begin
x := 10; -- SUCCEEDS
x := 110; -- FAILS
end;
子类型必须具有基本类型 PLS_INTEGER 或其子类型之一(例如 NATURAL、NATURALN、POSITIVE、POSITIVEN、SIGNTYPE、SIMPLE_INTEGER)。
注意:这仅适用于PL/SQL。对于数据库列,您通常会拥有基于简单数据类型(例如 NUMBER)的列,并对列施加约束以确保值在允许的范围内。
我们知道这是声明变量的方法:
varname number(precision,scale);
但是我们如何指定这个变量只能有像from 1 to 13
这样的特定值?
varname number(2,0) range 1..13
-- 但这是错误的,还是应该改用整数?
您可以声明限制在值范围内的自定义 PL/SQL 子类型,如下所示:
declare
subtype small_int is pls_integer range 1..100;
x small_int;
begin
x := 10; -- SUCCEEDS
x := 110; -- FAILS
end;
子类型必须具有基本类型 PLS_INTEGER 或其子类型之一(例如 NATURAL、NATURALN、POSITIVE、POSITIVEN、SIGNTYPE、SIMPLE_INTEGER)。
注意:这仅适用于PL/SQL。对于数据库列,您通常会拥有基于简单数据类型(例如 NUMBER)的列,并对列施加约束以确保值在允许的范围内。