Я хочу вставить нулевые данные в Teradata с JDBC-соединением на JAVA. Прежде всего я стараюсь это:Как вставить нулевые данные?
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
Да это true мое поле - 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. Поэтому у меня нет изменений, чтобы использовать ваш метод, потому что я не знаю, какой столбец является нулевым. –
См. Отредактированный ответ для предложения. –