我想通过JAVA上的JDBC连接向Teradata插入空数据。所有的 首先我试试这个:如何插入空数据?
PreparedStatement stmt;
String qm="Insert into db.user values (?,?,?,?,?,?,?)";
connection= DriverManager.getConnection
(
"jdbc:teradata://192.xxx.x.xx/database=DBC,tmode=ANSI,charset=UTF8","user","passw0rd" );
stmt = connection.prepareStatement(qm);
//some code here to open while loop
stmt.setObject(i,null); // This isnt working with Terada JDBC. It is working for Oracle and MSSQL JDBC
//and I finish my code
,后,我试过这个,而不是stmt.setObject(i,null);
:
stmt.setNull(i,rsmd.getColumnType(i),rsmd.getColumnTypeName(i));
rsmd.getColumnType(i)
等于97 rsmd.getColumnTypeName(i)
等于DATE
是的,它是真的我的领域是DATE。
但它给出了这样的错误: ERROR : [Teradata JDBC Driver] [TeraJDBC 14.10.00.17] [Error 857] [SQLState HY000] Two different data types are being set for parameter 17 (449 & 749)
我怎样才能解决这个问题。
感谢您的回复,但我想在JDBC中使用preparerestatament。所以我没有改变使用你的方法,因为我不知道哪一列为空 –
请参阅编辑答案的建议。 –