使用 NULL 参数调用雪花函数

时间:2021-07-22 19:56:53

标签: sql function null arguments snowflake-cloud-data-platform

尝试使用 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)

我们花了一整天时间阅读文档并编写不同的想法,但还没有奏效

2 个答案:

答案 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>