雪花云数据平台尝试运行 Java UDTF 时"Unknown function"错误



我在Snowflake中用预编译的jar编写了一个基于Java的UDTF。我能够将jar上传到Snowflake中并成功创建函数,所以我确信Snowflak对我的Java代码中的合同感到满意。

然而,当我实际尝试调用该函数时,我会收到以下消息:

SQL编译错误:未知函数[function_name]

我已经用";显示用户功能"我已经确认了参数类型是正确的。

要调用函数,我只是在做

select custom_function('A', 'B'); 

然后我得到上面列出的错误。这种类型的调用似乎是可以接受的,因为文档中有这样的例子,所以我完全不知道发生了什么。希望有人能帮我指明正确的方向。

编辑:我上面没有指出,但我确实在与Snowflake的连接中设置了UDTF创建的数据库和架构。我在Snowflake UI和VS Code中都尝试过,在这两种情况下,这些值都设置得很合适。

谢谢!

问题是您将此表函数作为标量函数调用,而Snowflake正在搜索名称为"的标量函数;custom_function";。您必须调用这样的函数:select * from table(custom_function('A', 'B'))。请参阅Java UDTF Snowflake文档。

函数是在特定的数据库和模式中创建的。调用USE DATABASE和USE SCHEMA,或者使用完全限定的名称调用函数,以确保当前的数据库/架构上下文没有不同。或者,如果您通过应用程序调用会话变量,请确保会话变量指向正确的数据库和模式。示例:

use database mydb;
use schema myschema;
select custom_function('A', 'B'); 

相关内容

最新更新