使用函数的返回值来创建计算列

问题描述

这个任务的最初意图是做这样的事情:

ALTER TABLE BUGS
ADD(SAMPLE_COL AS
        --use values from BUGS and other tables to decide the value of SAMPLE_COL
)

似乎不允许使用不同的表来创建计算列,所以我尝试创建一个函数(在当前项目设置中,创建计算列比创建 VIEW 要简单得多并更改应用程序中的所有相关部分,因此我想避免回答我不使用 VIEW 的原因。)

我已成功执行以下语句,但未看到添加到 SAMPLE_COL 列的任何值。我错过了什么明显的东西吗?

CREATE FUNCTION RETURN_SAMPLE_FUNC(BUG_ID INTEGER,BUG_STATUS NVARCHAR(64))
RETURNS SAMPLE_COL INTEGER --I tried to add length to INTEGER too,but then it ran into an error
AS
BEGIN
    DECLARE SAMPLE_COL INTEGER;
    --this is sample logic.
    IF BUG_STATUS IN ('REPORTER ACTION','RESOLVED','MERGE PENDING') THEN
        SAMPLE_COL := 0;
    ELSE
        SAMPLE_COL := 1;
    END IF;
END

ALTER TABLE BUGS
ADD(
    SAMPLE_COL AS RETURN_SAMPLE_FUNC(BUG_ID,BUG_STATUS)
)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...