LATIN内部表单中名称需要超过30个字节?

时间:2014-11-21 21:07:02

标签: java jdbc teradata

我正在尝试使用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()方法触发时会出现此错误?我能做什么 ?

1 个答案:

答案 0 :(得分:2)

我相信FastLoad使用" F _"作为列名称的前缀,因此您的列名称必须为28个字符或更少。 来自文档:

The destination table column names must not exceed 28 characters.

这是documentation的链接。