gpt4 book ai didi

sql - oracle虚拟列中的Sysdate

转载 作者:行者123 更新时间:2023-12-04 22:28:27 25 4
gpt4 key购买 nike

我正在尝试在 oracle 中创建一个使用 case 语句的虚拟列,但是如果我调用 SYSDATE 函数,它会给我这个错误:

ORA-54002: only pure functions can be specified in a virtual column expression

这是查询:
alter table t_requirements ADD
REQUIREMENT_STATE varchar2(30)
generated always as(
CASE
WHEN t_requirements.activation_date- SYSDATE - 5 <= 0 AND
t_requirements.activation_date - SYSDATE > 0 THEN 'Exist'
WHEN t_requisiti.activation_date - SYSDATE <=0 THEN 'Active'
END) virtual;

最佳答案

您正在使用 SYSDATE 来构建您的虚拟列。这是不允许的,因为 SYSDATE 不是确定性的,即它并不总是返回相同的值。想象一下,您在此列上构建了一个索引。一秒钟后索引就已经无效了!

看来您应该编写一个包含此临时计算列的 View

关于sql - oracle虚拟列中的Sysdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561003/

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