我有一个使用“通用数据库配置”的数据库连接器 (换句话说,JDBC而不是MySQL)。
测试连接有效,我在执行程序时连接到DB2,但是我在配置SELECT
语句时遇到了困难
我想要实现的是这样的(在命令行处理器中运行良好
SELECT SUM(BALANCE) FROM ACCOUNT
因此,当我单击Database Connector并转到下面的数据库选项卡时,我会看到以下内容
Connector Information: Generic Database Configuration
Operation: Select
Query
Type: Parameterized
Parameterized Query: ACCTNUM FROM ACCOUNT WHERE ACCTNUM = '11111'
当我将它作为Mule应用程序运行并向其发送http突发时,我得到以下内容:
C:\curl>curl http://localhost:8081
Query type must me '[SELECT, STORE_PROCEDURE_CALL]' but was 'DDL' (java.lang.Ill
egalArgumentException). Message payload is of type: String
所以我怀疑我没有正确设置查询,所以我尝试了以下内容:
Connector Information: Generic Database Configuration
Operation: Select
Query
Type: Parameterized
Parameterized Query: SELECT ACCTNUM FROM ACCOUNT WHERE ACCTNUM = '11111'
这次我收到以下错误
C:\curl>curl http://localhost:8081
DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=INSTUID.ACCOUNT, DRIVER=3.
63.123 (com.ibm.db2.jcc.am.SqlSyntaxErrorException). Message payload is of type:
String
如何解决此问题?
由于
答案 0 :(得分:4)
如果您使用的是Mule 3.5和新的数据库连接器......试试这个: -
<db:select config-ref="Generic_Database_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[SELECT SUM(BALANCE) FROM ACCOUNT]]></db:parameterized-query>
</db:select>