尝试使用 NULL
参数调用 Snowflake 表函数,但似乎不可能
我正在尝试调用的 PoC 函数
CREATE OR REPLACE FUNCTION add5_colo (n1 number, n2 number, n3 VARCHAR)
RETURNS table( i VARCHAR)
AS
$$
SELECT 'n1 + n2 + 5 + n3' AS i
$$
;
当我调用函数时
SELECT * FROM table(add5_colo(1, 2, NULL));
我收到以下错误
<块引用>SQL 编译错误:错误行 1 在位置 20 函数'ADD5_COLO' 的参数类型无效:(NUMBER(1,0), NUMBER(1,0), NULL)
我们花了一整天时间阅读文档并编写不同的想法,但还没有奏效
答案 0 :(得分:1)
可以将 NULL
作为参数传递给函数调用。必须首先强制转换以匹配预期参数的数据类型:
SELECT * FROM table(add5_colo(1, 2, NULL));
-- error
应该是:
SELECT * FROM table(add5_colo(1, 2, NULL::VARCHAR));
答案 1 :(得分:0)
尝试对 VARCHAR 参数使用‘’(空字符串)而不是 NULL
顺便说一句,我不确定您想要该函数做什么,但是,正如所写的那样,它看起来每次都会返回字符串 'n1 + n2 + 5 + n3',无论您的输入值是什么< /p>