加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以使用Oracle PL / SQL RANGE子句来约束变量的数据类型?

发布时间:2020-12-12 16:25:26 所属栏目:百科 来源:网络整理
导读:我想弄清楚何时在PL / SQL块的声明部分中的变量定义中允许使用RANGE子句. 以下代码在Oracle 12c上进行了测试 这有效…… declare l_constrained PLS_INTEGER RANGE 7..10 ;begin l_constrained := 9;end ;/ 这给出了编译错误…… declare l_constrained NUMB
我想弄清楚何时在PL / SQL块的声明部分中的变量定义中允许使用RANGE子句.

以下代码在Oracle 12c上进行了测试

这有效……

declare
   l_constrained  PLS_INTEGER  RANGE  7..10 ;
begin
   l_constrained := 9;
end ;
/

这给出了编译错误……

declare
   l_constrained  NUMBER(2)  RANGE  7..10 ;
begin
   l_constrained := 9;
end ;
/

它似乎只适用于PL / SQL数据类型而不适用于SQL数据类型,但这只是我的第一印象.

有人可以给我一些信息,并可能请我转到Oracle关于使用RANGE条款的官方文档吗?我找不到它了…

从来没有听说过这个功能.

无论如何,这似乎被称为“约束子类型”,仅适用于PLS_INTEGER和子集.

The only base types for which you can specify a range of values are PLS_INTEGER and its subtypes (both predefined and user-defined).

https://docs.oracle.com/database/121/LNPLS/datatypes.htm#CHDBBCIE

文档没有明确提到子类型声明之外的RANGE用法,但我猜它在某种程度上与将变量声明为NUMBER(8,2)属于同一类别,即在类型上声明约束.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读