Я пытаюсь реализовать Fastload Utility
с jdbc. Но я продолжаю получать следующую ошибку: Name requires more than 30 bytes in LATIN internal form
Для внутреннего имени LATIN требуется более 30 байт?
Я прочитал много статей: эта ошибка возникает при создании таблицы. В моем случае эта ошибка возникает на линии executeBatch()
. Вот мой код
Connection conn = DriverManager.getConnection(url, username, password); // I am using TYPE=FASTLOAD
// creating table
String createStr =
"CREATE TABLE dbname.tablename(" +
" Fname VARCHAR(506) CHARACTER SET UNICODE, " +
" Lname VARCHAR(507) CHARACTER SET UNICODE " +
");"
Statement createTable = ...
createTable.execueQuery("CREATE TABLE ... ") ;
PreparedStatement prst = ... ;
while (// loop) {
prst.addBatch();
}
prst.executeBatch(); // Here it throws this error
conn.commit();
Почему я получаю эту ошибку, когда executeBatch()
метод сработает? Что я могу сделать ?
Я думаю, что ответ где-то скрыт в '...' частях, которые вы оставили. – Henry
Yup, нам нужно полное предложение 'CREATE TABLE' – Andrew
Я пробовал набор данных, который имеет 200K строк, и это не удалось. Затем я уменьшил количество строк в одном наборе данных и работал. Как правило, он работает нормально, просто этот набор данных не работает. Кроме того, почему 'executeBatch()' выдавал бы такую ошибку? Все статьи в Интернете говорят, что оператор 'create' выдает эту ошибку, но почему' executeBatch() 'потерпел неудачу в моем случае, но не' create' –