我正在尝试查询两个数据库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>
答案 0 :(得分:1)
就数据库类型而言,查询中的变量分辨率没有区别。
我认为问题在于SQL Server的生成SQL查询在语法上是不正确的。例如:在使用SQL Server的查询的SELECT
部分中使用绑定变量是否合法?