我的SQL查询中没有任何"est“。我可以直接使用这个SQL成功地插入vertica,但是当我使用JDBC时它就出错了。
java.sql.SQLException: VerticaVJDBC错误:语法错误在或接近"est“插入到. 由: com.vertica.util.ServerErrorData.buildException(Unknown源( com.vertica.dataengine.VDataEngine.prepareImpl(Unknown Source)、com.vertica.dataengine.VDataEngine.prepareBatch(Unknown源( com.vertica.dataengine.VDataEngine.prepareBatch(Unknown Source)、com.vertica.dataengine.VDataEngine.prepareBatch(Unknown源( com.vertica.jdbc.SStatement.executeBatch(Unknown Source) (com.vertica.jdbc.SStatement.executeBatch(Unknown Source)引起的语法错误: java.sql.SQLException: VerticaVJDBC错误:在或接近"est“处的语法错误
整个查询的错误:
java.sql.SQLException: VerticaVJDBC错误:在public.gamelive_original(小时、分钟、ip、国家、sp、动作、时间、uid、pcode、r_name、r_owner、r_owne_id、r_category、online_num、ver、发件人、msg、dt)值( '21','40','125.90.93.219','hello',NULL,'webzb',空,'10240','hello',‘你好’,‘你好’,‘'hello',NULL,'hello','6094',NULL,'yeschenshu',’爱‘,'2016-01-17’)
发布于 2016-01-20 19:16:32
您的堆栈跟踪表示批处理的更新-错误将出现在更新的行中。
正如您的日志显示SQL中的参数一样,您可能没有使用PreparedStatement
我的猜测是:你在代码中缺少了转义,并插入了一个字符串,比如.
"C'est la vie"如果没有正确的转义,就会创建类似于
insert into foo(bar) values('C'est la vie'),这将在"est“附近造成一个错误。
https://stackoverflow.com/questions/34896462
复制相似问题