【问题标题】:Mulesoft not able to pass dynamic SQL queries based on environmentsMulesoft 无法传递基于环境的动态 SQL 查询
【发布时间】:2022-01-20 16:40:09
【问题描述】:

您好,出于演示目的,我删除了我的实际 sql 查询。

我有一个 SQL 查询

SELECT * 
FROM dbdev.training.courses

dbdev 是我的 DEV 数据库表名。当我迁移到 TEST 环境时,我希望我的查询动态更改为

SELECT * 
FROM dbtest.training.courses

我尝试使用{env: p('db_name')} 等输入参数并在查询中使用

SELECT * FROM :env.training.courses

SELECT * FROM (:env).training.courses

但他们都没有工作。我不希望我的 SQL 查询出现在属性文件中。

您能否建议一种基于环境动态编写 SQL 查询的方法?

唯一的替代方法是使用不同的代码为不同的环境部署单独的 jar。

【问题讨论】:

    标签: sql database environment-variables mulesoft anypoint-studio


    【解决方案1】:

    您可以将属性的值设置为一个变量,然后将该变量与字符串插值一起使用。

    警告:使用任何类型的字符串操作创建动态 SQL 查询都可能使您的应用程序暴露于 SQL injection安全漏洞

    例子:

    #['SELECT * FROM $(vars.database default "dbtest").training.courses'] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 2021-01-29
      • 2020-12-27
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多