谢谢您的时间。
我正在研究Snowflake数据库中的问题。我基本上是在尝试创建如下所示的Javascript UDF-
CREATE OR REPLACE FUNCTION getACity()
RETURNS STRING
LANGUAGE JAVASCRIPT
AS
'function getCity() {
var str;
$$ str = select * from CITY where name="Laflin" //This is the problem
$$
return str;
}';
如您所见,我正在尝试使用函数中另一个表中的数据,但是没有发生,并且出现以下错误-
JavaScript编译错误:语法错误:意外 getACity中位于'str = select * from CITY的标识符,其中 name =“ Laflin”'位置21
我了解我用于在javascript函数内执行查询的语法不正确,但我甚至不确定在Snowflake中是否可行。
我有以下问题-
我经历过雪花documentation,但找不到针对此案例的任何帮助。
再次感谢您的宝贵时间。非常感谢!
答案 0 :(得分:2)
要回答您的问题:
您可以为此使用SQL UDF,但这只能产生一列,例如
create or replace function getcityid()
returns string as '
select id from CITY where name='Laflin'
';
或使用VIEW,例如
create or replace view cities as select * from CITY where name='Laflin'
如果您准确解释 您要达到的目标,这将会有所帮助。
此外,请注意,SQL中的"Laflin"
是指名为Laflin
的列,而不是值为Laflin
的字符串。为此使用'Laflin'
。
答案 1 :(得分:0)
雪花JavaScript UDF不支持运行sql,但是您可以使用过程来执行该操作,但是过程将仅返回一个值/不返回表函数结果。
有关雪花的详细信息,请参阅文档