Created 06-08-2022 07:55 PM
I am using the latest version of impala JDBC Driver 2.6.27.1032, when my sql is "upsert into my.testtable(id,name,insert_time) values(?,?,?)" and using preparestatement, then the column "insert_time" will be replaced to "upsert_time", so my sql be changed to "upsert into my.testtable(id,name,upsert_time) values(?,?,?)" and i get a error "errorMessage:AnalysisException: Unknown column 'UPSERTby' in column permutation",。
How can I solve this problem?
please!
Created 06-09-2022 09:56 PM
Hello Team,
We have tested the java code internally and it worked fine for us.
ClouderaJDBC version:- 2.6.27.1032
Java code:-
========
import java.sql.*;
import java.math.*;
public class test{
public static void main(String args[]){
try{
Class.forName("com.cloudera.impala.jdbc41.Driver");
Connection con=DriverManager.getConnection("jdbc:impala://<<hostname>>
:21050;UseNativeQuery=1");
String sql = "upsert into user_info(id, name, address, email, insert_time) values (?,?,?,?,?)";
PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, 102);
statement.setString(2, "Peter");
statement.setString(3, "New York");
statement.setString(4, "John@xyz.com");
statement.setTimestamp(5, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()));
statement.addBatch();
statement.executeBatch();
statement.close();
con.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
Please let us know if it helps.
Created 06-10-2022 12:36 AM
I'm sure my source code file has UTF-8 encoding and I compiling the class by maven.
When my SQL is set to :
upsert into user_info(id, name, address, email, insert_time) values (?,cast(? as string),cast(? as string),?,?)
it's works, but the url parameter “UseNativeQuery=1” does't works!