gpt4 book ai didi

javascript - 如何评估 Snowflake 存储过程中的语句

转载 作者:行者123 更新时间:2023-11-28 03:14:29 24 4
gpt4 key购买 nike

我需要使用 JSON 文档创建计算。使用像 10+10-3 这样的简单示例,我想评估该语句,但 Snowflake javascript 不允许我评估该语句,有人知道如何评估基于 json 的计算结果吗?我已经能够将每个输入分配给一个变量,然后执行 select 语句来获取结果,但是这是相当劳动密集型的。

最佳答案

eval() 函数确实给出了错误:JavaScript 执行错误:未捕获的 EvalError:不允许动态代码评估

一种解决方法是将表达式注入(inject)到 SELECT 语句中,如下所示:

create or replace procedure p(S varchar)
returns number
language javascript
as
$$
const rs = snowflake.execute({ sqlText: `SELECT ${S}` })
rs.next()
return rs.getColumnValue(1)
$$;

call p('1+1');

但是要小心SQL注入(inject)。或者实现一个简单的 javascript 中缀表达式解析器。

关于javascript - 如何评估 Snowflake 存储过程中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com