无法在Snowflake中的Javascript UDF中使用查询结果

无法在Snowflake中的Javascript UDF中使用查询结果,javascript,snowflake-cloud-data-platform,Javascript,Snowflake Cloud Data Platform,谢谢你抽出时间 我正在处理雪花数据库中的一个问题。我基本上是在尝试创建一个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 $$

谢谢你抽出时间

我正在处理雪花数据库中的一个问题。我基本上是在尝试创建一个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 where name=“Laflin”位置21

我理解在javascript函数中执行查询所使用的语法是不正确的,但我甚至不确定在Snowflake中是否可以

我有以下问题:

  • 我可以在javascript UDF中执行查询并在函数中使用结果吗
  • 我可以在另一个Javascript UDF中调用Javascript UDF吗?如果这是可能的,它也将为我工作
  • 我已经经历了雪花,但找不到任何具体的帮助这个案件


    再次感谢您抽出时间。非常感谢

    要回答您的问题:

    • 雪花JavaScript UDF现在不允许以任何形式在其内部执行查询
    • 您不能在其他JS UDF中使用JS UDF
    您可以使用SQLUDF实现这一点,但这只能生成一列,例如

    create or replace function getcityid() 
    returns string as '
      select id from CITY where name='Laflin'
    ';
    
    或者使用视图,例如

    create or replace view cities as select * from CITY where name='Laflin'
    
    如果你准确地解释了你想要达到的目标,这应该会有所帮助


    另外,请注意,SQL中的
    “Laflin”
    指的是名为
    Laflin
    的列,而不是值为
    Laflin
    的字符串。使用
    'Laflin'

    回答您的问题:

    • 雪花JavaScript UDF现在不允许以任何形式在其内部执行查询
    • 您不能在其他JS UDF中使用JS UDF
    您可以使用SQLUDF实现这一点,但这只能生成一列,例如

    create or replace function getcityid() 
    returns string as '
      select id from CITY where name='Laflin'
    ';
    
    或者使用视图,例如

    create or replace view cities as select * from CITY where name='Laflin'
    
    如果你准确地解释了你想要达到的目标,这应该会有所帮助


    另外,请注意,SQL中的
    “Laflin”
    指的是名为
    Laflin
    的列,而不是值为
    Laflin
    的字符串。使用
    'Laflin'

    雪花JavaScript UDF不支持运行sql,但是您可以使用过程来执行此操作,但是过程将只返回一个值/而不是表函数结果

    有关雪花的详细信息,请参阅文档


    雪花JavaScript UDF不支持运行sql,但是您可以使用过程来执行此操作,但是过程将仅返回一个值/而不是表函数结果

    有关雪花的详细信息,请参阅文档