我正在尝试使用jdbc实现Fastload Utility
。但我一直收到以下错误: Name requires more than 30 bytes in LATIN internal form
我阅读了很多文章:在创建表时会发生此错误。 在我的情况下,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()
方法触发时会出现此错误?我能做什么 ?
答案 0 :(得分:2)
我相信FastLoad使用" F _"作为列名称的前缀,因此您的列名称必须为28个字符或更少。 来自文档:
The destination table column names must not exceed 28 characters.
这是documentation的链接。