Mule 4:数据库:如何在数据库“查询文本”中将SQL查询作为变量传递?

问题描述

场景:我已经形成一个SQL查询并将其存储在变量vars.query中 我想在sql QUERY TEXT窗口的DATABASE SELECT组件中使用此变量。

为此,我在查询文本中传递了vars.query,并运行了该应用程序。该应用程序已成功部署,但在运行时因DB:EXCEPTION而失败,该数据库是预期的SQL查询,但已找到DDL

我尝试了以下方法

在QUERY文本中添加:query,并在“输入参数”中引用了

{
    'query' : vars.hierarchyQuery
}

但是我遇到以下错误


org.mule.runtime.core.internal.message.ErrorBuilder$ErrorImplementation
{
  description=Query type must be one of [SELECT,STORE_PROCEDURE_CALL] but query '?' is of type 'DDL'
  detailedDescription=Query type must be one of [SELECT,STORE_PROCEDURE_CALL] but query '?' is of type 'DDL'
  errorType=DB:BAD_sql_Syntax
  cause=org.mule.extension.db.api.exception.connection.BadsqlSyntaxException
  errorMessage=-
  childErrors=[]
}

解决方法

我通过以下方法解决了该问题:在“查询文本”窗口中,将包含变量的SQL查询引用为#[vars.query]