SQL查询中的Mule参数

时间:2013-05-13 17:16:12

标签: mysql sql sql-server variables mule

我正在尝试查询两个数据库f102,即MySQL和f100,即SQL Server。

对MySQL服务器的查询有效但SQL Server连接器不喜欢“#[header:INBOUND:company] as company”并抛出:

  

根异常堆栈跟踪:
  java.sql.SQLException:参数太多:预期为0,给出1
  在org.apache.commons.dbutils.QueryRunner.fillStatement(QueryRunner.java:176)
  在org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:392)
  在org.mule.transport.jdbc.sqlstrategy.SelectSqlStatementStrategy.executeStatement(SelectSqlSt atementStrategy.java:80)
  + 3个以上(设置调试级别日志记录或'-Dmule.verbose.exceptions = true'用于所有内容)

在调用查询中的变量和参数时调用MySQL和SQL Server之间有什么区别吗?

<jdbc:connector name="db_conn_f102" dataSource-ref="f102" pollingFrequency="5000" doc:name="Database" validateConnections="false">
    <jdbc:query key="read" value="SELECT ID , #[header:INBOUND:company] as company FROM AcTr"/>
</jdbc:connector>

<jdbc:connector name="db_conn_f100" dataSource-ref="f100" pollingFrequency="5000" doc:name="Database" validateConnections="false">
    <jdbc:query key="readickr" value="SELECT ID, #[header:INBOUND:company] as company FROM AcTr"/>
</jdbc:connector>

1 个答案:

答案 0 :(得分:1)

就数据库类型而言,查询中的变量分辨率没有区别。

我认为问题在于SQL Server的生成SQL查询在语法上是不正确的。例如:在使用SQL Server的查询的SELECT部分中使用绑定变量是否合法?