gpt4 book ai didi

oracle - 我可以在哪些数据类型上使用 Oracle PL/SQL RANGE 子句来约束变量?

转载 作者:行者123 更新时间:2023-12-04 19:51:37 24 4
gpt4 key购买 nike

我试图弄清楚何时允许在 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) 属于同一类别,即声明一个类型的约束。

关于oracle - 我可以在哪些数据类型上使用 Oracle PL/SQL RANGE 子句来约束变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244333/

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