我用数据写到oracle 数据库 报一下错误 麻烦老师看下吧是什么错误?

来源:11-5 -Storm整合JDBC编程开发

啊大bug

2020-08-12

14:47:51.578 [SLOT_1027] INFO o.a.s.d.s.Slot - STATE waiting-for-worker-start msInState: 15 topo:LocalWordCountJDBCStromTopology-1-1597214868 worker:4a48444c-4250-4074-89c5-1c98c8c3672b -> running msInState: 0 topo:LocalWordCountJDBCStromTopology-1-1597214868 worker:4a48444c-4250-4074-89c5-1c98c8c3672b
14:47:51.602 [Thread-37-JdbcInsertBolt-executor[3, 3]] INFO o.a.s.e.b.BoltExecutor - Prepared bolt JdbcInsertBolt:[3]
14:47:51.620 [Thread-37-JdbcInsertBolt-executor[3, 3]] ERROR o.a.s.e.e.ReportError - Error
java.lang.RuntimeException: Failed to execute insert query Insert into wc () values ( )
at org.apache.storm.jdbc.common.JdbcClient.executeInsertQuery(JdbcClient.java:81) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.common.JdbcClient.insert(JdbcClient.java:45) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.bolt.JdbcInsertBolt.process(JdbcInsertBolt.java:91) [storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.topology.base.BaseTickTupleAwareRichBolt.execute(BaseTickTupleAwareRichBolt.java:38) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:234) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.Executor.accept(Executor.java:275) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:133) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consume(JCQueue.java:110) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:171) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:158) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.Utils$1.run(Utils.java:388) [storm-client-2.0.0.jar:2.0.0]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.sql.BatchUpdateException: ORA-00928: 缺失 SELECT 关键字

at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10296) ~[ojdbc14-11.2.0.2.0.jar:11.2.0.2.0]
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:216) ~[ojdbc14-11.2.0.2.0.jar:11.2.0.2.0]
at com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128) ~[HikariCP-2.4.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java) ~[HikariCP-2.4.3.jar:?]
at org.apache.storm.jdbc.common.JdbcClient.executeInsertQuery(JdbcClient.java:69) ~[storm-jdbc-1.1.1.jar:1.1.1]
... 11 more

emit: orange14:47:52.567 [Thread-37-JdbcInsertBolt-executor[3, 3]] ERROR o.a.s.e.e.ReportError - Error
java.lang.RuntimeException: Failed to execute insert query Insert into wc () values ( )
at org.apache.storm.jdbc.common.JdbcClient.executeInsertQuery(JdbcClient.java:81) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.common.JdbcClient.insert(JdbcClient.java:45) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.bolt.JdbcInsertBolt.process(JdbcInsertBolt.java:91) [storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.topology.base.BaseTickTupleAwareRichBolt.execute(BaseTickTupleAwareRichBolt.java:38) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:234) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.Executor.accept(Executor.java:275) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:133) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consume(JCQueue.java:110) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:171) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:158) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.Utils$1.run(Utils.java:388) [storm-client-2.0.0.jar:2.0.0]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.sql.BatchUpdateException: ORA-00928: 缺失 SELECT 关键字

at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10296) ~[ojdbc14-11.2.0.2.0.jar:11.2.0.2.0]
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:216) ~[ojdbc14-11.2.0.2.0.jar:11.2.0.2.0]
at com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128) ~[HikariCP-2.4.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java) ~[HikariCP-2.4.3.jar:?]
at org.apache.storm.jdbc.common.JdbcClient.executeInsertQuery(JdbcClient.java:69) ~[storm-jdbc-1.1.1.jar:1.1.1]
... 11 more

emit: banana14:47:53.564 [Thread-37-JdbcInsertBolt-executor[3, 3]] ERROR o.a.s.e.e.ReportError - Error
java.lang.RuntimeException: Failed to execute insert query Insert into wc () values ( )
at org.apache.storm.jdbc.common.JdbcClient.executeInsertQuery(JdbcClient.java:81) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.common.JdbcClient.insert(JdbcClient.java:45) ~[storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.jdbc.bolt.JdbcInsertBolt.process(JdbcInsertBolt.java:91) [storm-jdbc-1.1.1.jar:1.1.1]
at org.apache.storm.topology.base.BaseTickTupleAwareRichBolt.execute(BaseTickTupleAwareRichBolt.java:38) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:234) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.Executor.accept(Executor.java:275) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:133) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.JCQueue.consume(JCQueue.java:110) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:171) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:158) [storm-client-2.0.0.jar:2.0.0]
at org.apache.storm.utils.Utils$1.run(Utils.java:388) [storm-client-2.0.0.jar:2.0.0]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]

写回答

2回答

啊大bug

提问者

2020-08-12

老师是我写的 

Map hikariConfigMap = Maps.newHashMap();
System.out.println("创建数据库连接...");
hikariConfigMap.put("dataSourceClassName", "oracle.jdbc.pool.OracleDataSource");
hikariConfigMap.put("dataSource.url", "jdbc:oracle:thin:@127.0.0.1:1521:orcl");
hikariConfigMap.put("dataSource.user", "scott");
hikariConfigMap.put("dataSource.password", "root");
ConnectionProvider connectionProvider = new HikariCPConnectionProvider(hikariConfigMap);
System.out.println("数据库连接成功!");
String tableName = "wc";
JdbcMapper simpleJdbcMapper = new SimpleJdbcMapper(tableName, connectionProvider);

JdbcInsertBolt userPersistenceBolt = new JdbcInsertBolt(connectionProvider, simpleJdbcMapper)
       .withTableName(tableName)
       .withQueryTimeoutSecs(30);
builder.setBolt("JdbcInsertBolt", userPersistenceBolt).shuffleGrouping("CountBolt");

0
0

Michael_PK

2020-08-12

java.lang.RuntimeException: Failed to execute insert query Insert into wc () values ( )

你的sql语句是什么

0
2
Michael_PK
回复
啊大bug
我刚去看了我们公司的代码,oracle的还没真对接过。你先搞个mysql试试看,oracle的还真没测试过
2020-08-12
共2条回复

Java大数据实战,巧用Storm快速切入实时流处理领域

深入Storm内部机制,logstash+kafka,快速切入大数据实时流处理

518 学习 · 143 问题

查看课程