Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Camel-springsqlexception在使用准备好的语句时_Spring_Apache Camel_Camel Jdbc - Fatal编程技术网

Camel-springsqlexception在使用准备好的语句时

Camel-springsqlexception在使用准备好的语句时,spring,apache-camel,camel-jdbc,Spring,Apache Camel,Camel Jdbc,在Spring 2.7.11中使用Camel 2.13.1,并在尝试使用SQL组件运行更新查询时收到SQL异常。下面是如何将我的更新查询添加到路由中的,我正在使用主体中的java.util.Map将输入参数值传递给该语句 主要问题:如果我在准备好的语句中只有一个输入参数,那么它可以正常工作。。如果我在下面的更新查询中有多个as,那么它将失败,出现sql异常 即使我使用camel JDBC,也会面临同样的问题 <route id="ABC" > <from ur

在Spring 2.7.11中使用Camel 2.13.1,并在尝试使用SQL组件运行更新查询时收到SQL异常。下面是如何将我的更新查询添加到路由中的,我正在使用主体中的java.util.Map将输入参数值传递给该语句

主要问题:如果我在准备好的语句中只有一个输入参数,那么它可以正常工作。。如果我在下面的更新查询中有多个as,那么它将失败,出现sql异常


即使我使用camel JDBC,也会面临同样的问题

<route id="ABC" >

      <from uri="direct:sqlInsert" />
      <process ref="sqlProcessor" />

      <setBody>
            <constant>UPDATE myTable set key1=:?value1, key2=:?value2, key3=:?value3 where req1=:?reqValue1</constant>
        </setBody>
        <to uri="jdbc:customDatasource?useHeadersAsParameters=true" />  

 </route>

更新myTable集合key1=:?value1,key2=:?value2,key3=:?value3其中req1=:?reqValue1
这是我一直看到的SQL异常

执行JMS消息侦听器失败。原因:[org.apache.camel.runtimecameleException-org.springframework.jdbc.badsqlgramarException:PreparedStatementCallback;SQL语法错误[];嵌套异常为java.SQL.SQLSyntaxErrorException:ORA-00942:表或视图不存在 ]:org.apache.camel.runtimecameleexception:org.springframework.jdbc.badsqlgramarexception:PreparedStatementCallback;错误的SQL语法[];嵌套异常为java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在


注意:数据库连接没有问题,数据库表中有人出现了相同的错误。他通过改变论点类型来解决这个问题。尝试验证你的论点是否正确。像您尝试的那样,尝试硬编码所有参数,但不要更改硬编码参数。这样您就可以确定哪个参数导致了错误

我们在params上也遇到了同样的问题。我们的应用服务器是WebLogic12c。奇怪,但降级到11g解决了这个问题


我希望这些信息对你有帮助

我也有同样的问题,但是我找到了解决办法

sql:UPDATE myTable set key1=:#value1, key2=:#value2, key3=:#value3 where req1=CAST(:#reqValue1 as NCHAR(25))
仅在where子句中,确保提供查询中显示的字符长度

让我们知道它是否也解决了您的问题

其他:
它工作时我遇到了同样的问题,这解决了错误

Oracle的错误告诉您表myTable没有exists@ClausIbsen不幸的是,这里的情况并非如此。。如果我只将一个参数传递给prepared语句,对另一个进行硬编码,那么它执行得很好。只有当我有多个输入参数时,我才会看到此问题。我报告的问题与您提供的链接中的问题不同。。我有数据库连接和有效的表结构,一切都很正确。。如果我对prepared语句有一个输入参数,并且如果有多个输入参数,则SQL执行得非常好。。此问题与camel有关,而与数据库无关。。
sql:UPDATE myTable set key1=:#value1, key2=:#value2, key3=:#value3 where req1=CAST(:#reqValue1 as NCHAR(25))