1
2
从 10g doc :
因此,尽管可以安全地分配
如果您的工作需要很多时间(因此增加了溢出发生的可能性),您可能需要切换到timestamp数据类型。 |
2
3
可能会晚些,但这可能会有利于搜索同一问题的人。 底层实现是一个简单的32位二进制计数器,从上次启动数据库开始,每隔100秒递增一次。 此二进制计数器正在映射到一个pl/sql binary_integer类型-这是一个有符号的32位整数(在64位计算机上没有将其更改为64位的迹象)。 因此,假设时钟从零开始,大约248天后,它将达到+ve整数限制,然后翻转成-ve值,然后下降到零。 好消息是,如果两个数字的符号相同,您可以做一个简单的减法来查找持续时间,否则您可以使用32位的余数。
编辑:如果时间间隔太大(248天),则此代码将突破in t限制并失败,但无论如何,您不应该使用get_time来比较以天为单位的持续时间度量(见下文)。 最后一个问题是,为什么你要用“获取时间”。 历史上,它是获得次二次的唯一方法,但是自从引入了systimestamp之后,您使用get-time的唯一原因是因为它很快——它是一个32位计数器的简单映射,没有真正的类型转换,并且不会对底层的OS时钟功能造成任何影响(systimestamp似乎如此)。 因为它只测量相对时间,所以它只用于测量两点之间的持续时间。对于任何花费大量时间的任务(你知道,超过1/1000秒左右),使用时间戳的成本是微不足道的。 实际有用的次数很少(我唯一发现的是检查缓存中数据的年龄,在缓存中对每个访问进行时钟命中会变得很重要)。 |
3
0
将负值赋给PLS_整型变量会引发ORA-01426:
但是,您似乎建议-214512572接近-2^31,但除非您忘记键入数字,否则它不是。我们在看一把吸烟枪吗? 当做, Rob。 |
vytaute · 返回表类型时Oracle函数中的类型错误 2 年前 |
BetaRide · Oracle架构用户无法在过程中创建表 6 年前 |
F.donoso · 嵌套的隐式游标未在数据中清除 6 年前 |
ADH · 如何在网格中调用过程和输出结果 6 年前 |