在SQL查询中使用宏

achint_kumarachint_kumar 成员职位:16因素二世
2020年4月编辑 帮助
你好,

我试图在用于从DW检索数据的SQL查询中非常动态地使用宏。我从Excel分配宏值作为输入。
我在这样做的过程中遇到了一些问题。它告诉我错误陈述"eval不是一个可识别的内置函数名"

请查看以下流程截图:


请帮助解决这个问题,是我们不能在SQL函数中使用这些宏吗?
标记:

最好的答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3362年RM数据科学家
    解决方案接受
    你好,
    Eval()只能在表达式解析器中使用。它不需要。

    最好的
    马丁
    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
    achint_kumar
  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:913独角兽
    解决方案接受
    你好,

    更好的方法是使用prepared statements选项并在对话框中指定参数。您可以使用那里的宏并指定数据类型。
    这是将宏(=字符串)放入SQL语句的一种更安全的方式,您可以使用prepareds语句避免SQL注入和SQL语法错误。

    有时不可能避免在SQL语句中使用宏,但是您应该更喜欢使用预处理语句方法。
    不能使用这种方法的一个例子是,如果SQL查询的结构方面(表和列名)是变量,并使用宏指定。e . g。
    SELECT %{varColumn} FROM %{varTable} ORDER BY %{varSortOrder}
    当然,这样做时需要格外小心,例如,在执行宏之前验证宏的格式和内容。

    最好的问候,
    Balazs
    MartinLiebig MarcoBarradas
    登录注册置评。