当最大值返回NULL时,函数不返回期望值

MatteoS

我已经创建了从数据集中返回最大数量的函数,如果该数据集存在(即,如果MAX返回VALUE),则可以正常工作。

如果没有匹配的数据集,我需要返回0值,但是无论我尝试什么,检索要么等于无值,要么得到没有找到的数据。

尝试了什么时候when no data foundwhen others以及null values如下,但如果找不到最大值(即,如果MAX值返回),则无法使该函数返回0 NULL

CREATE OR REPLACE FUNCTION OPC_OP.sitezone_msm
    (in_site_id AW_ACTIVE_ALARMS.site_id%TYPE
    ,in_zone_id AW_ACTIVE_ALARMS.zone_id%TYPE
    ,in_mod AW_ACTIVE_ALARMS.module%TYPE)

RETURN NUMBER
IS

v_msm NUMBER;
NULL_VALUES EXCEPTION;

BEGIN
    SELECT MAX(AW_ACTIVE_ALARMS.weight)
    INTO v_msm
    FROM AW_ACTIVE_ALARMS 
    WHERE AW_ACTIVE_ALARMS.site_id = in_site_id
    AND AW_ACTIVE_ALARMS.zone_id = in_zone_id
    AND AW_ACTIVE_ALARMS.module LIKE in_mod||'%'; 

RETURN (v_msm);

EXCEPTION
    WHEN NULL_VALUES
    THEN
    RETURN 0;

END sitezone_msm;

花了很长时间玩这个游戏,但无法获得理想的结果和建议,不胜感激

阿夫拉吉特·罗伊(Avrajit Roy)
Try this NVL function is generally used for handling NULL values

CREATE OR REPLACE FUNCTION OPC_OP.sitezone_msm
    (in_site_id AW_ACTIVE_ALARMS.site_id%TYPE
    ,in_zone_id AW_ACTIVE_ALARMS.zone_id%TYPE
    ,in_mod AW_ACTIVE_ALARMS.module%TYPE)

RETURN NUMBER
IS

v_msm NUMBER;
--NULL_VALUES EXCEPTION; -- not required

BEGIN
    SELECT nvl(MAX(AW_ACTIVE_ALARMS.weight),0)
    INTO v_msm
    FROM AW_ACTIVE_ALARMS 
    WHERE AW_ACTIVE_ALARMS.site_id = in_site_id
    AND AW_ACTIVE_ALARMS.zone_id = in_zone_id
    AND AW_ACTIVE_ALARMS.module LIKE in_mod||'%'; 

RETURN (v_msm);

EXCEPTION  
    WHEN OTHERS
    THEN
    RETURN 0;

END sitezone_msm;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

任务ContinueWith不返回期望值

来自分类Dev

标量UDF不返回期望值

来自分类Dev

Max()函数不返回最大值

来自分类Dev

使用从createFromFormat创建的值添加到DateTime时不返回期望值

来自分类Dev

当输入参数为null时,如何编写茉莉花的期望值,该函数已返回?

来自分类Dev

Mockito什么时候/然后不返回期望值

来自分类Dev

preg_match_all不返回期望值

来自分类Dev

嵌套匹配的索引不返回期望值

来自分类Dev

XNA Rectangle.Center不返回期望值

来自分类Dev

preg_match_all不返回期望值

来自分类Dev

BigInteger数学函数未返回期望值

来自分类Dev

math.h中的函数未返回期望值

来自分类Dev

递归函数未在PHP中返回期望值

来自分类Dev

更正此代码,以便greet函数返回期望值

来自分类Dev

Spock存根未返回期望值

来自分类Dev

COUNTIF公式未返回期望值

来自分类Dev

Ruby命令未返回期望值

来自分类Dev

为什么映射可枚举的返回值不返回期望值

来自分类Dev

List.contains为长值不返回期望值(常规)

来自分类Dev

函数不返回输入到数组中的最大值和最小值

来自分类Dev

正则表达式组不返回期望值

来自分类Dev

java.awt.image.BufferedImage.getRBG不返回期望值

来自分类Dev

QueryDSL返回最大值

来自分类Dev

返回最大值的索引

来自分类Dev

具有日期条件的SQL窗口函数未返回期望值

来自分类Dev

Redshift中的REGEXP_SUBSTR函数未返回期望值

来自分类Dev

在一种特定情况下,函数未返回期望值

来自分类Dev

为什么我的递归函数不返回列表的最大值

来自分类Dev

具有索引/匹配公式的 Max 函数不返回最大值