我正在使用名为 Appworx 的进程调度软件。其中,每个进程和子进程都可以有任意数量的“条件”,如果条件为真,则采取一些条件 Action 。
可能的条件操作之一是 goto 语句,其中一个普通整数是标签(每个条件从 1 开始编号)。我想使用此功能在循环中评估和运行一些任务,但您只能转到更高编号的条件(不要问我为什么......这似乎毁了大部分实用程序)。
我有理由相信,这一切都是Oracle在后台评估的。查看 Appworx 的架构后,goto 标签似乎都是 NUMBER(12,0)。我怀疑检查标签是否低于当前条件的逻辑是这样的:
where label > current_condition
因此,如果我要提供一个具有足够高值的 goto,我认为它会欺骗检查并允许我执行简单的循环。至少如果 Oracle 使用普通整数。是否有可能溢出它们,我将使用什么值将值溢出回 1?
我想 Oracle 版本很重要,如果是的话,它是 11g。
另外,如果有人愿意为我重新标记这个,请添加“appworx”
最佳答案
Oracle 数实际上是具有 40 位十进制有效数字的 float 。
所以,它们不能溢出。
(10^40-1) 是可以增加 1 的最大整数。
proof
NUMBER(12,0) 是 NUMBER 类型的子类型。
也就是说,它由 NUMBER 类型和一个限制检查器组成。
关于oracle - Oracle NUMBER 类型是否可能溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484564/