我正在写信以询问过程中的问题:
我有一个Kudu表,当我尝试通过数据阶段(11.5或11.7)插入一个新行时,使用Impala JDBC驱动程序,该行的大小大于500个字符,我收到此错误:
致命错误:连接器无法执行以下语句:INSERT INTO default.tmp_consulta_teste(idconsulta,idcliente,idinstituicao,idunidadeinst,datahoraconsulta,desccpfcnpj,idcentral,idcontrato,idusuario,valorconsulta,destegratormestica,VALUE,descretormeserxml) ,?,?,?,?,?,?,?,?,?,?,?,?)。报告的错误是: [SQLSTATE HY000] java.sql.SQLException:[Cloudera] ImpalaJDBCDriver获取参数数据类型错误:HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE。
**************我该如何解决?我需要加载该信息。 **********
答案 0 :(得分:0)
我遇到了类似的问题,我收到的错误是:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw
exception [Request processing failed; nested exception is
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback;
uncategorized SQLException for SQL [update service set comments =? where service_name
="Zzzzz";]; SQL state [HY000]; error code [500352]; [Simba]
[ImpalaJDBCDriver](500352) Error getting the parameter data type:
HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE; nested exception is
java.sql.SQLException: [Simba][ImpalaJDBCDriver](500352) Error getting the parameter
data type: HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE] with root cause
我在以下链接中提到了最后一个答案: https://community.cloudera.com/t5/Support-Questions/HIVE-PARAMETER-QUERY-DATA-TYPE-ERR-NON-SUPPORT-DATA-TYPE/td-p/48849
我做了以下事情:
1。确保该表是Kudu表。
我使用 jdbcTemplate.batchUpdate 代替了jdbcTemplate.query,以便使用 PreparedStatement,做了 PreparedStatement中的SetObject 。
jdbcTemplate.batchUpdate(UpdateComment, new BatchPreparedStatementSetter(){
@Override
public int getBatchSize() {
return 1;
}
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setObject(1, comments);
}
});