我希望验证参数输入以检查,例如,_product_ids :: BIGINT []不为null,或者不包含null(或者可选地,不包含null),或者不为空。< / p>
这就是我所拥有的:
IF (
_product_ids IS NULL -- Is null
OR -1 = ANY(_product_ids) IS NULL -- Contains null
OR COALESCE(ARRAY_LENGTH(_product_ids, 1) < 1, TRUE) -- Is empty
) THEN
RAISE EXCEPTION 'INPUT IS INVALID';
END IF;
我想调整一下&#39;包含null&#39;这样只有在只有空值时它才会返回true。另外,我想知道是否有办法同时检查null和empty数组。
使用PostgresSQL 9.6。
答案 0 :(得分:1)
表达式可能如下所示:
_product_ids is null -- is null
or cardinality(_product_ids) = 0 -- is empty
or (select bool_and(e is null) from unnest(_product_ids) e) -- contains only nulls