1

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

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

根异常堆栈跟踪:
java.sql.SQLException:参数过多:预期为 0,
在 org.apache.commons.dbutils.QueryRunner 的 org.apache.commons.dbutils.QueryRunner.fillStatement(QueryRunner.java:176)
中给出 1 .query(QueryRunner.java:392)
at org.mule.transport.jdbc.sqlstrategy.SelectSqlStatementStrategy.executeStatement(SelectSqlStatementStrategy.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>
4

1 回答 1

1

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

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

于 2013-05-13T18:41:49.983 回答